IO文件读写操作

如果是操作文本文件类型

推荐使用:  StreamReader、StreamWriter

示例:StreamWriter 用于写入,可以使用 WriteLine(xxx) 函数将内容写入指定文件当中

 1 try
 2 {
 3     //StreamWriter用于将内容写入文本文件中
 4     //path: 要写入文件的路径
 5     //append: true 将数据追加到该文件的末尾; false 覆盖该文件。
 6     //Encoding.UTF8  写入的编码格式
 7     //如果指定的文件不存在,构造函数将创建一个新文件。
 8     using (StreamWriter sw = new StreamWriter(@"D:\aaa.txt", true, Encoding.UTF8))
 9     {
10         sw.WriteLine("我是老大");
11         sw.WriteLine("我是老三");
12         sw.WriteLine("我是老四");
13         sw.WriteLine("我是老五");
14         sw.Close();
15     }
16     Console.WriteLine("写入成功了。。。");
17 }
18 catch (Exception ex)
19 {
20     Console.WriteLine(ex.Message);
21 }

如果文件不存在,会自动创建。

 StreamReader  用于读取,ReadLine 表示一行行读取,还有其他读取方法,具体到程序集查看即可

 1 //StreamReader用法
 2 try
 3 {
 4     using (StreamReader sr = new StreamReader(@"D:\aaa.txt", Encoding.UTF8))
 5     {
 6         while (true)
 7         {
 8             var str = sr.ReadLine();  //一行行的读取
 9             if (str == null)          //读到最后会返回null
10             {
11                 break;
12             }
13             Console.WriteLine(str);
14         }
15         sr.Close();
16     }
17     Console.WriteLine("读取结束了。。。");
18 }
19 catch (Exception ex)
20 {
21     Console.WriteLine(ex.Message);
22 }

如果是操作 其他类型的文件(包括文本文件),可以使用 FileStream,

比如我们操作一张图片文件

 1 //FileStream 用法  读取文件
 2 try
 3 {
 4     //FileMode.OpenOrCreate   表示文件不存在,会创建一个新文件,存在会打开
 5     using (Stream fs = new FileStream(@"D:\123.jpg", FileMode.OpenOrCreate))
 6     {
 7         byte[] bt = new byte[fs.Length];  //声明存放字节的数组
 8         while (true)
 9         {
10             var num = fs.Read(bt, 0, bt.Length);   //将流以byte形式读取到byte[]中
11             if (num <= 0)
12             {
13                 break;
14             }
15         }
16         fs.Close();
17 
18 
19         //将 123.jpg 文件中读到byte[]中,然后写入到 456.jpg
20         //FileAccess.ReadWrite  表示支持读和写操作
21         using (Stream fs2 = new FileStream(@"D:\456.jpg", FileMode.OpenOrCreate, FileAccess.ReadWrite))
22         {
23             //设置字节流的追加位置从文件的末尾开始,如果文件不存在,只默认0开始
24             fs2.Position = fs2.Length;
25 
26             //将待写入内容追加到文件末尾  
27             fs2.Write(bt, 0, bt.Length);
28 
29             //关闭
30             fs2.Close();
31         }
32     }
33 }
34 catch (Exception ex)
35 {
36     Console.WriteLine(ex.Message);
37 }

生成效果如下

 

posted @ 2020-09-16 19:05  每天努力进步一点点  阅读(36)  评论(0编辑  收藏