C#实现文件流操作:写入与读取示例

需积分: 5 0 下载量 130 浏览量 更新于2024-09-07 收藏 801KB PDF 举报
"07-IO文件流.pdf" 在本资源中,文件名为"07-IO文件流.pdf",其内容涉及C#编程中的文件I/O操作,主要关注的是文件的读写操作。在.NET Framework中,`System.IO`命名空间提供了丰富的类用于处理文件和数据流,如`FileStream`, `MemoryMappedFiles`等。以下将详细介绍文件操作的关键知识点: 1. **文件流(FileStream)的使用**: - `FileStream`是用于读写文件的基本类,它代表一个可读/写的数据流。在`Form1`类的`button1_Click`事件处理程序中,首先定义了一个字符串变量`path`来指定文件路径,如"D:\1.txt"。 - 文件打开模式`FileMode`有两个示例:`CreateNew`表示如果文件不存在则创建新文件,如果文件已存在则失败;`Append`模式允许在文件尾部追加数据,不覆盖已有内容。在这里,我们选择了`Append`模式。 - `FileAccess`枚举用于指定对文件的访问权限,`Write`权限用于写入数据。 2. **二进制数据的处理**: - 将字符串转换为二进制数据使用`Encoding.Unicode.GetBytes`方法,这将文本数据转换为字节序列。例如,字符串"测试文件--李志伟"会被编码成字节数组。 - 使用`file.Write`方法将字节数组写入到文件中,`Write`方法接受偏移量和要写入的数据长度作为参数。 3. **文件读取**: - 在完成写入后,通过相同的`FileStream`实例,使用`FileMode.Open`和`FileAccess.Read`模式重新打开文件,以进行读取操作。 - 使用`file.Read`方法读取已写入的二进制数据,将读取的字节数组传递给`Encoding.Unicode.GetString`,以还原为原始字符串并显示在消息框中。 4. **内存映射文件(MemoryMappedFiles)的简要提及**: - 资源中虽然没有直接使用`MemoryMappedFiles`,但提到了其命名空间`System.IO.MemoryMappedFiles`,这是.NET中另一种高效处理大文件的方法,通过内存映射将文件的一部分映射到进程的地址空间,可以直接操作,而无需将整个文件加载到内存中,适用于大数据处理场景。 5. **文件流的管理**: - 为了确保资源的正确释放,`FileStream`对象使用了`Dispose`方法,这是一种最佳实践,确保在使用完资源后关闭和清理,防止资源泄漏。 总结来说,这个代码片段展示了如何使用C#的`FileStream`类进行文件的读写操作,包括创建、追加数据、读取以及正确管理文件流。同时,还提及了内存映射文件的概念,尽管在这个特定的实例中并未实际使用。这对于理解和实践基础的文件操作和性能优化具有重要意义。