天天看点

使用FileStream向txt格式的文本文件 "追加" 新内容并读取

原文: 使用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 }      

继续阅读