1.StreamReader
2.StreamWriter
1.StreamReader
StreamReader从流(文件流,内存流等)读取字符数据,实现了IDisposable接口,需用using语句或手动调用Dispose()a.读取全部文本(适合小文件)一次性读取文件所有内容,简单但大文件会占用大量内存
stringfilePath="test.txt";using(StreamReaderreader=newStreamReader(filePath,Encoding.UTF8)){// 读取全部文本stringallContent=reader.ReadToEnd();Console.WriteLine("文件全部内容:\n"+allContent);}
b.按行读取(适合大文件)逐行读取,避免一次性加载全部内容到内存,是处理大文本文件的最佳方式
using(StreamReaderreader=newStreamReader(filePath,Encoding.UTF8)){stringline;// 逐行读取,直到读取到文件末尾(返回null)while((line=reader.ReadLine())!=null){Console.WriteLine("读取到行:"+line);}}
c.读取指定数量字符using(StreamReaderreader=newStreamReader(filePath,Encoding.UTF8)){char[]buffer=newchar[10];// 定义字符缓冲区intreadCount=reader.Read(buffer,0,10);// 读取10个字符Console.WriteLine("读取到的字符:"+newstring(buffer,0,readCount));}
2.StreamWriter
StreamWriter向流(文件流,内存流等)写入字符数据,实现了IDisposable接口,需用using语句或手动调用Dispose()a.向文件写入文本,若文件已存在则覆盖
usingSystem;usingSystem.IO;usingSystem.Text;classStreamWriterDemo{staticvoidMain(){// 文件路径stringfilePath="test.txt";// 使用using语句自动释放资源,指定编码为UTF8(推荐)using(StreamWriterwriter=newStreamWriter(filePath,false,Encoding.UTF8)){// 写入单行文本writer.WriteLine("Hello, StreamWriter!");// 写入多行文本(不自动换行)writer.Write("C# 文本写入示例\n");// 写入格式化文本writer.WriteLine("当前时间:{0}",DateTime.Now);}Console.WriteLine("文件写入完成!");}}