zoukankan      html  css  js  c++  java
  • stram流char[]保存,支持中文,Filestram需要先转byte[]才能使用,但是性能更好《转载》

    学习流的使用时(stream类),逐步遇到新的理解,记录一下

    1、FileStream流是处理byte[],默认UTF8类型

    当你使用wirte方法时将非byte类型的输入内容,先将内容通过转换为字节

    FileStream fs = new FileStream(@"c: ext.txt", FileMode.Create);
    string message = "This is example for filestream";
    byte[] writeMesaage = Encoding.UTF8.GetBytes(message);
    fs.Write(writeMesaage, 0, writeMesaage.Length);

    2、StreamWirte流是针对char[],可以自定义字符类型,默认UTF8类型

    StreamWriter sw = new StreamWriter(@"c: ext.txt");
    sw.Write("This is StreamWriter");

    针对流写入方式是先将内容写入缓冲区,待缓冲区满时会写入文本中,但是可能的是还有一小部分并没有写入,需要fs.fush()/sw.flush()将缓冲区清除,将内容写入文本中。Flush()与Closed()的区别在与Flush()不会关闭文本,但是两则都可以将内容写入文本中。

    但是如果两个filestream与Stream类对同一个文本进行操作时,最会执行下列两句将报错

    fs.Close();//关闭文件流
    sw.Close();//关闭stream对象和基础流

    所以只需执行sw.close()即可。

    FileStream 的优缺点:

    优:使用 FileStream 类对文件系统上的文件进行读取、写入、打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道、标准输入和标准输出。读写操作可以指定为同步或异步操作。FileStream 对输入输出进行缓冲,从而提高性能。

    缺:最好只对byte进行操作,如包含中文还需要转换类型,太过麻烦

    Stream类的优缺点:

    优:可以针对Char,读字符要求不高,可以针对中文的写入与读取

    缺:性能没有FileStream 好

    以上个人看法,记录一下
    ————————————————
    版权声明:本文为CSDN博主「ai_feng123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ai_feng123/article/details/82849236

  • 相关阅读:
    Jedis客户端以及redis中的pipeline批量操作
    Redis5.x两种持久化方式以及主从复制配置
    博客园原创文章防剽窃、反爬虫指南(持续更新.....)
    【金主打赏榜】
    Swift LeetCode 目录 | Catalog(每周日更新......)
    [Swift]SkeletonView:在UITableView中使用骨架屏
    【Xcode】加快Xcode编译调试速度
    【Xcode】ITMS-90809:查找UIWebView
    [Swift]PhotoKit-照片框架
    [SourceTree]remote: HTTP Basic: Access denied
  • 原文地址:https://www.cnblogs.com/dengzhekaihua/p/14929555.html
Copyright © 2011-2022 走看看