stram流char[]保存,支持中文,Filestram需要先转byte[]才能使用,但是性能更好《转载》
学习流的使用时(stream类),逐步遇到新的理解,记录一下
1、FileStream流是处理byte[],默认UTF8类型
当你使用wirte方法时将非byte类型的输入内容,先将内容通过转换为字节
FileStream fs = new FileStream(@"c:\text.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:\text.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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix