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

  • 相关阅读:
    uva 1637 Double Patience
    Emacs ^ Vim
    uva 11181 Probability|Given
    uva 10491 Cows and Cars
    uva 1636 Headshot
    hdu 4336 Card Collector
    zoj 3640 Help Me Escape
    Codeforces 148 D Bag of mice
    hdu 4405 Aeroplane chess
    hdu 3853 LOOPS
  • 原文地址:https://www.cnblogs.com/dengzhekaihua/p/14929555.html
Copyright © 2011-2022 走看看