文章评分
次,平均分 :
[收起]
文章目录
本文主要介绍C#里面用来读写txt文件的两个常用类:FileStream和StreamReader,并简单比较了一下两者的优缺点。
StreamReader类
读取文件
1 2 3 4 5 6 |
StreamReader sr = new StreamReader(filePath,Encoding.Default); String line; while ((line = sr.ReadLine()) != null) //逐行读取 { Console.WriteLine(line);//逐行输出 } |
写入文件
1 2 3 4 5 6 |
FileStream fs = new FileStream(filePath, FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.Write("Hello World!!!!");//开始写入 sw.Flush();//清空缓冲区 sw.Close();//关闭流 fs.Close(); |
FileStream类
读取文件
1 2 3 4 5 6 7 8 9 |
byte[] byData = new byte[100]; char[] charData = new char[1000]; FileStream file = new FileStream(filePath, FileMode.Open); file.Seek(0, SeekOrigin.Begin); file.Read(byData, 0, 100); Decoder d = Encoding.Default.GetDecoder(); d.GetChars(byData, 0, byData.Length, charData, 0); Console.WriteLine(charData); file.Close(); |
写入文件
1 2 3 4 5 |
FileStream fs = new FileStream(filePath, FileMode.Create); byte[] data = System.Text.Encoding.Default.GetBytes("Hello World!"); //获得字节数组 fs.Write(data, 0, data.Length);//开始写入 fs.Flush();//清空缓冲区 fs.Close();//关闭流 |
优缺点比较
两种方法的差异在于:FileStream是以二进制方式读写,StreamReader是以文本方式读写。
二进制文件读写优缺点
- 二进制文件存储图形图像数据和数值数据占用的空间少,读写速度快;
- 二进制文件在内存中可以用fseek函数等,程序中处理起来比较灵活;
- 二进制读文本文件会将"\r\n"全部读取出来,不便于程序处理;
- 二进制文件的可移植性可能会出现问题,因为机器不一样位数和浮点数的标准不一样的话,会导致读入到内存里面发生差异。
文本文件的读写优缺点
- 处理文本文件较方便,但是效率相对慢点;
- 文本文件读取因为“\r\n"会变成"\n",程序中建议不能用fseek处理,程序处理没有那么灵活;
- 文本文件的可移植性也可能会有问题,因为添加"\r\n"的符号,但是比二进制文件好些。
除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/csharp-txt/
对了,关于换行,有”\n”,也有”\r\n”,其实可以用Environment.NewLlne。