发布时间:2026-05-09 11:03:57 浏览次数:1
在C#中,FileStream是操作文件的一个类。通过FileStream,可以对一个文件进行读取、写入、修改等操作。在进行文件处理时,FileStream是一个非常重要的工具。
创建FileStream对象时,会需要传递文件的路径、文件打开方式等参数。常见的打开方式有:
创建FileStream对象示例:
FileStream fs = new FileStream("test.txt", FileMode.Create);接下来可以通过FileStream对象调用Read()、Write()等方法进行操作,并最终使用Close()方法关闭文件流。
这样使用FileStream可能会存在文件打开后忘记关闭的问题,为了避免这种情况,可以使用using语句块。这样在代码执行完成后,会自动关闭FileStream对象。
使用using语句块示例:
using (FileStream fs = new FileStream("test.txt", FileMode.Create)) { // Write操作 // ...} 使用FileStream进行写操作时,会调用Write()方法。Write方法有多个不同参数的重载,最常用的是将字符串写入文件的方法。
使用Write方法进行字符串写入示例:
using (FileStream fs = new FileStream("test.txt", FileMode.Create)) { string msg = "Hello, C# FileStream!"; byte[] buffer = Encoding.Default.GetBytes(msg); fs.Write(buffer, 0, buffer.Length); } 使用FileStream进行读操作时,会调用Read()方法。Read()方法有多个不同参数的重载,最常用的是读取文件所有字节的方法。
使用Read方法读取文件内容并输出示例:
using (FileStream fs = new FileStream("test.txt", FileMode.Open)) { byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); string msg = Encoding.Default.GetString(buffer); Console.WriteLine(msg); } // 读取源文件内容using (FileStream from = new FileStream("test.dat", FileMode.Open)){ byte[] buffer = new byte[from.Length]; from.Read(buffer, 0, buffer.Length); // 将内容写入新文件 using (FileStream to = new FileStream("test_copy.dat", FileMode.Create)) { to.Write(buffer, 0, buffer.Length); }}// 声明文件夹路径string directoryPath = @"D:\test_folder\";// 获取文件夹中的所有文件string[] files = Directory.GetFiles(directoryPath);// 遍历所有文件,计算总字节数int totalBytes = 0;foreach(string file in files){ using (FileStream fs = new FileStream(file, FileMode.Open)) { totalBytes += (int)fs.Length; }}Console.WriteLine("The total bytes of all files is: " + totalBytes);