• (转).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:	ext.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

  • 相关阅读:
    FPGA 在线调试方法概述
    Quartus II& Nios II 出错解决办法
    Verilog HDL--VGA显示
    常用电平转换方案
    Verilog HDL SPI通信——读
    Verilog HDL SPI通信——写
    Verilog HDL串口发送程序
    verilog HDL 串口接受程序
    关于AFNetworking中header的bug问题
    iOS项目的本地化处理(多国语言)
  • 原文地址:https://www.cnblogs.com/souliid/p/5648738.html
Copyright © 2020-2023  润新知