📜  C#FileStream(1)

📅  最后修改于: 2023-12-03 15:30:16.645000             🧑  作者: Mango

C# FileStream

FileStream 是 C# 中用于读写文件的基本类之一。它建立在 .NET Framework 上,提供了一种方便的方式来访问和操作文件数据并且可以用于读取二进制数据和文本数据。

创建 FileStream 对象

使用 new 关键字和一个文件路径创建 FileStream 对象:

FileStream fileStream = new FileStream("path/to/file", FileMode mode);
  • path/to/file是需要读写的文件的绝对或相对路径。
  • mode 是用来指定 FileStream 对象的打开模式。有多种模式可用,例如:
FileMode.Create   //创建或覆盖
FileMode.CreateNew //仅创建新文件
FileMode.Open    //打开文件
FileMode.OpenOrCreate //打开或创建新文件
FileMode.Truncate //截断文件(删除文件内容)
FileMode.Append //在文件结尾追加内容

需要注意的是,如果你想以文本形式进行读取和写入,则可以传递 Encoding 参数来指定使用的编码格式,例如:

FileStream fileStream = new FileStream("path/to/file", FileMode mode, FileAccess access, FileShare share, int bufferSize, FileOptions options, Encoding encoding);
读取二进制数据

以下代码片段演示如何使用 FileStream 类读取二进制数据:

using (FileStream fileStream = new FileStream("path/to/file", FileMode.Open))
{
    byte[] buffer = new byte[1024];
    int bytesRead = 0;
    while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
    {
        //对数据进行处理
    }
}
  • FileMode.Open指示文件已存在。如果文件不存在,就会抛出异常。
写入二进制数据

以下代码片段演示如何使用 FileStream 类写入二进制数据:

using (FileStream fileStream = new FileStream("path/to/file", FileMode.Create))
{
    byte[] buffer = new byte[1024];
    //将数据填充到缓冲区
    fileStream.Write(buffer, 0, buffer.Length);
}
  • FileMode.Create指示文件不存在时创建一个新文件。如果文件已存在,则会覆盖该文件。
文件拷贝

以下代码片段使用 FileStream 类拷贝源文件到目标文件:

public static void CopyFile(string sourcePath, string destinationPath)
{
    using (FileStream srcStream = new FileStream(sourcePath, FileMode.Open))
    {
        using (FileStream destStream = new FileStream(destinationPath, FileMode.Create))
        {
            byte[] buffer = new byte[1024];
            int bytesRead = 0;
            while ((bytesRead = srcStream.Read(buffer, 0, buffer.Length)) > 0)
            {
                destStream.Write(buffer, 0, bytesRead);
            }
        }
    }
}
总结

以上是一些 C# 文件读写操作的基本示例,使用 FileStream 类可以很方便地读取和写入文件数据。同时,我们还可以通过调整打开文件的模式来控制文件的读写方式。