(转贴) 注意:汉字使用GB2312编码
测试页面代码:
using System; using System.Collections.Generic; using System.Text;
namespace StreamReaderAndStreamWriter { class Program { static void Main(string[] args) { Console.WriteLine("读取文本文件内容"); Console.Write("输入文本文件所在目录:"); string sBaseFile = Console.ReadLine(); StreamReaderAndStreamWriter.ReadFile(sBaseFile); Console.WriteLine("追加文件"); StreamReaderAndStreamWriter.AppendText(sBaseFile); } } } 类页面代码:
using System; using System.Collections.Generic; using System.Text; using System.IO;
namespace StreamReaderAndStreamWriter { class StreamReaderAndStreamWriter { //读取文本文件 public static void ReadFile(string sFile) { if (File.Exists(sFile)) { //获取一个文件流对象,用于读写文件 FileStream fs = File.OpenRead(sFile); //获取一个指向文件流的流读取器 StreamReader sr = new StreamReader(fs,Encoding.GetEncoding("gb2312"));//以gb2312编码读取文本文件中的汉字,要不然,读取的内容中如果有汉字,则显示为乱码。 //读取所有文本内容 string data = sr.ReadToEnd(); //关闭对象,释放资源 sr.Close(); fs.Close(); Console.WriteLine(string.Format("读取文件>>{0}", sFile)); Console.WriteLine(data); } else Console.WriteLine(string.Format("{0}不存在",sFile)); } //追加文本文件 public static void AppendText(string sFile) { if (File.Exists(sFile)) { //编辑文本文件 Console.WriteLine("输入写入内容"); string swrite = Console.ReadLine(); //获取一个指向文件流的流编辑器 StreamWriter sw = new StreamWriter(sFile, true, Encoding.GetEncoding("gb2312"));//这里很重要,看一下这个StreamWriter()格式就一目了然了,sFile声明了文本对象;true声明了可以进行Appedn;Encoding.GetEncoding("gb2312")声明了一GB2312编码向文本文件写入内容,这样就可以避免写入汉字出现乱码。 sw.Write(swrite); //关闭对象,释放资源 sw.Close(); //fs.Close(); Console.WriteLine("向{0}中追加文件",sFile); } else Console.WriteLine("{0}不存在",sFile); } } } |