C#回顾 - 3.NET的IO:字节流


使用 Stream 类管理字节流

使用 FileStream 类管理文件数据

使用 MemoryStream 类管理内存数据

使用 BufferedSream 类提高流性能

 

3.1 #

FileStream#

image

 

 

MemoryStream#

Seek 定位,寻址

image

 

 

BufferedStream#

 

image

 

 

3.2 管理应用程序数据#

文本、流、字符串和二进制数据

管理文本数据和字符串

(1)TextReader 类 (抽象类)

(2)TextWriter 类  (抽象类)

管理字符串

使用 binaryReader 和 BinaryWrter 管理二进制数据

image

image

3.2.1.文件操作#

复制代码
       //真的关联到某一个文件
            //StreamReader对文本文件:读 <--父类:Stream
            //StreamWriter对文本文件:写 <--父类:Stream
            string file = @"F:\text.txt";
            FileStream fs = File.Open(file, FileMode.OpenOrCreate);
            StreamWriter sw = new StreamWriter(fs);

            sw.WriteLine("现在是:{0},", DateTime.Now);
            sw.Flush();
            sw.Close();

            StreamReader sr = new StreamReader(File.Open(file, FileMode.Open));
            Console.WriteLine(sr.ReadToEnd());
复制代码

image

 

3.2.2.字符串操作#

复制代码
         //在内存中,把string当作文件来操作
              //StringReader对string:读 <--TextReader
            //StringWriter对string:写 <--TextWiter
            StringBuilder sb = new StringBuilder();

            StringWriter sws = new StringWriter(sb);
            sws.WriteLine(123 + 321);
            sws.WriteLine(true);
            StringReader srr = new StringReader(sb.ToString());
            Console.WriteLine(srr.ReadToEnd());
复制代码

image

 

3.2.3.二进制操作#

复制代码
        //二进制
            BinaryWriter bw = new BinaryWriter(File.Open(@"F:\a.dat", FileMode.OpenOrCreate));
            bw.Write(true);
            bw.Write('A');
            bw.Write(123);

            bw.Flush();
            bw.Close();

            //读取的时候要按照顺序
            BinaryReader br = new BinaryReader(File.Open(@"F:\a.dat", FileMode.Open));
            Console.WriteLine(br.ReadBoolean());    //对应true
            Console.WriteLine(br.ReadChar());       //对应'A'
            Console.WriteLine(br.ReadInt32());      //对应123
复制代码

image

 

image

作者:【唐】三三

出处:https://www.cnblogs.com/tangge/p/3295401.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   【唐】三三  阅读(1104)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示