C# FileStream操作Text文件详解:编码与写读实践

需积分: 9 3 下载量 45 浏览量 更新于2024-09-09 1 收藏 2KB TXT 举报
在C#编程中,文件流(FileStream)是一种重要的I/O操作工具,用于处理二进制数据的读写操作,尤其是在处理文本文件时。本文将详细介绍如何在文本格式下使用FileStream进行文件操作,包括创建、写入和读取文件。 首先,让我们理解一下`System.IO.FileStream`类。它属于.NET Framework的System.IO命名空间,是处理文件和流的基础类,提供了对文件的低级别访问。在给定的代码片段中,我们看到`FileStream`被用来创建一个名为"azhou.txt"的新文件,如果文件不存在则会创建,使用模式`System.IO.FileMode.Create`确保文件被初始化为空。 在`Main`方法中,我们定义了一个字符串变量`s`,存储了要写入文件的内容(这里是"helloй",这可能是用Unicode编码的)。为了正确地写入文件,我们需要先将字符串转换为字节数组,这里使用了`Encoding.Default.GetBytes()`方法,该方法将字符串转换为字节序列,考虑到默认编码可能不是UTF-8,此处可能会根据系统的当前设置而变化。 接着,遍历这个字节数组,并逐个写入到FileStream中。通过调用`fs.WriteByte()`方法,每次写入一个字节,并输出当前文件指针的位置(Position属性),以跟踪写入进度。在写入完成后,我们使用`Seek()`方法返回到文件的开始位置,以便后续读取。 读取文件时,使用`fs.ReadByte()`方法逐字节读取,直到读取到`-1`为止,这是文件结束的标志。在每次读取后,都会输出当前文件指针的位置以及读取到的字节值。最后,使用`fs.Close()`关闭文件,释放系统资源。 整个过程体现了C#中文件流的常见操作:创建、写入和读取。这对于处理文本文件,尤其是需要精确控制读写位置和编码的情况非常有用。在实际应用中,还需要考虑异常处理、文件锁定、多线程协作等问题,以确保程序的健壮性和性能。例如,对于大文件,可能需要分块读写以避免内存消耗过大,而在处理不同编码的文本时,要明确指定正确的`Encoding`类型以避免乱码问题。