zoukankan      html  css  js  c++  java
  • 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 }

    生成效果如下

  • 相关阅读:
    Apache 虚拟主机 VirtualHost 配置
    EAX、ECX、EDX、EBX寄存器的作用
    Python中文文档 目录(转载)
    八度
    POJ 3268 Silver Cow Party (最短路)
    POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
    2013金山西山居创意游戏程序挑战赛——复赛(1) HDU 4557 非诚勿扰 HDU 4558 剑侠情缘 HDU 4559 涂色游戏 HDU 4560 我是歌手
    HDU 4549 M斐波那契数列(矩阵快速幂+欧拉定理)
    UVA 11624 Fire! (简单图论基础)
    HDU 3534 Tree (树形DP)
  • 原文地址:https://www.cnblogs.com/peterzhang123/p/13680795.html
Copyright © 2011-2022 走看看