原文:
使用FileStream向txt格式的文本文件 "追加" 新内容并读取
1 //得到文件路径。 2 static string filePath = AppDomain.CurrentDomain.BaseDirectory+"\\TxtFile.txt"; 3 static void Main(string[] args) 4 { 5 //调用写入方法。 6 WriteTxtFile(filePath); 7 //调用读取方法。 8 Console.WriteLine(ReadTxtFile(filePath)); 9 Console.Read(); 10 } 11 12 /// <summary> 13 /// 此方法用于读取文件。 14 /// </summary> 15 /// <param name="_filePath">读取文件的路径。</param> 16 /// <returns></returns> 17 static string ReadTxtFile(string _filePath) 18 { 19 //result:用于得到从txt文件中读取到的内容。 20 string result; 21 //创建一个FileStream对象。 22 using (FileStream fs = new FileStream(_filePath, FileMode.Open)) 23 { 24 //声明一个字节数组,其长度等于读取到的文件的长度。 25 byte[] bytes = new byte[fs.Length]; 26 //读取txt文件中的内容。r代表实际读取到的有效字节数。 27 int r = fs.Read(bytes, 0, bytes.Length); 28 //将读取到的文件转换为字符串后赋值给result。 29 result = Encoding.UTF8.GetString(bytes, 0, r); 30 } 31 return result; 32 } 33 34 /// <summary> 35 /// 此方法用于往txt文件中写入数据。 36 /// </summary> 37 /// <param name="_filePath">写入文件的路径。</param> 38 static void WriteTxtFile(string _filePath) 39 { 40 //创建一个FileStream对象。 41 using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Write)) 42 { 43 //将要追加的字符串转换成字节数组。 44 byte[] byteBuffer = Encoding.UTF8.GetBytes("Hello,World!"); 45 //设置当前流的位置(如果不设置下面的Position属性,执行Write方法的时候是从前往后覆盖)。 46 fs.Position = fs.Length; 47 //写入文件。 48 fs.Write(byteBuffer, 0, byteBuffer.Length); 49 Console.WriteLine("写入成功。"); 50 } 51 }