• 欢迎访问交通人网站!
  • 分享一款小游戏:信任的进化
  •    发表于10年前 (2016-02-24)  热点资讯 |   1 条评论  746 
    文章评分 1 次,平均分 5.0

    本文主要介绍C#里面用来读写txt文件的两个常用类:FileStream和StreamReader,并简单比较了一下两者的优缺点。

    StreamReader类

    读取文件

    StreamReader sr = new StreamReader(filePath,Encoding.Default);
    String line;
    while ((line = sr.ReadLine()) != null) //逐行读取
    {
    Console.WriteLine(line);//逐行输出
    }

    写入文件

    FileStream fs = new FileStream(filePath, FileMode.Create);
    StreamWriter sw = new StreamWriter(fs);
    sw.Write("Hello World!!!!");//开始写入
    sw.Flush();//清空缓冲区
    sw.Close();//关闭流
    fs.Close();

    FileStream类

    读取文件

    byte[] byData = new byte[100];
    char[] charData = new char[1000];
    FileStream file = new FileStream(filePath, FileMode.Open);
    file.Seek(0, SeekOrigin.Begin);
    file.Read(byData, 0, 100); 
    Decoder d = Encoding.Default.GetDecoder();
    d.GetChars(byData, 0, byData.Length, charData, 0);
    Console.WriteLine(charData);
    file.Close();

    写入文件

    FileStream fs = new FileStream(filePath, FileMode.Create);
    byte[] data = System.Text.Encoding.Default.GetBytes("Hello World!"); //获得字节数组
    fs.Write(data, 0, data.Length);//开始写入
    fs.Flush();//清空缓冲区
    fs.Close();//关闭流

    优缺点比较

    两种方法的差异在于:FileStream是以二进制方式读写,StreamReader是以文本方式读写。

    二进制文件读写优缺点

    • 二进制文件存储图形图像数据和数值数据占用的空间少,读写速度快;
    • 二进制文件在内存中可以用fseek函数等,程序中处理起来比较灵活;
    • 二进制读文本文件会将"\r\n"全部读取出来,不便于程序处理;
    • 二进制文件的可移植性可能会出现问题,因为机器不一样位数和浮点数的标准不一样的话,会导致读入到内存里面发生差异。

    文本文件的读写优缺点

    • 处理文本文件较方便,但是效率相对慢点;
    • 文本文件读取因为“\r\n"会变成"\n",程序中建议不能用fseek处理,程序处理没有那么灵活;
    • 文本文件的可移植性也可能会有问题,因为添加"\r\n"的符号,但是比二进制文件好些。
     

    除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/csharp-txt/

    交通人博客是交通人工作室(JTR Studio)建立的交通人系列网站之一,是交通人工作室的主阵地,旨在整合和分享交通行业相关资讯,具体包括但不限于行业新闻、行业动态,以及行业相关规范、书籍、报告和软件等资源。

    发表评论

    表情 格式
    1. 对了,关于换行,有”\n”,也有”\r\n”,其实可以用Environment.NewLlne。

      爱折腾的交通人 博 主 10年前 (2016-02-29) [0] [0]
    
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享