zoukankan      html  css  js  c++  java
  • 输入输出流操作

       //流操作
               // ------------------------------------------------------------------------------------------
                //FileStream  针对字节操作;只能进行读或取操作,不能同时进行读取操作,
                //readByte 如果没有返回-1,自动将位置定位到下一个字节
                //flush  写操做是在关闭流之后完成的,如果想及时的写入,用flush
                FileStream fs = new FileStream(@"D:a.txt", FileMode.Open);
                fs.WriteByte(90);
                fs.WriteByte(80);
                fs.Flush();
                fs.Write(new Byte[] { 68, 69 }, 0, 2);//将数组中指定的位置开始的字节数写入到文件中
                fs.Close();
                fs = new FileStream(@"D:a.txt", FileMode.Open);
                int b = fs.ReadByte();
                fs.Read(new byte[10], 0, 1);//从流中取出固定位置开始的字节数,读的位置会发生变化
                // Console.WriteLine(fs.Length);//字节长度
                // Console.WriteLine(fs.Position);//读取位置,从0开始
                int c = fs.ReadByte();
                fs.Close();
                //  Console.WriteLine(c);
                //  Console.ReadKey();
                //------------------------------------------------------------------------------------------
                //streamWriter 以字符方式写入到文件,存在编码方式选择
                FileStream fs1 = new FileStream(@"D:c.txt", FileMode.OpenOrCreate);
                StreamWriter sw = new StreamWriter(fs1);
                sw.Write(100);//以100的字符形式‘100’写入到文件中
                sw.Write("100");
                sw.Close();
                fs1.Close();
                //------------------------------------------------------------------------------------------
                //binaryWriter 以二进制的形式写入,不存在编码方式的选择
                fs1 = new FileStream(@"D:a.txt", FileMode.Open);
                BinaryWriter bw = new BinaryWriter(fs1);
                bw.Write(100);//以100的二进制形式
                bw.Close();
                //------------------------------------------------------------------------------------------
                //MemoryStream 默认最大512M,如果想用更大,请用构造函数声明;可以提高性能
                //内存流的数据来源于内存,FileStream 的数据来源于文件

                //文件写
                FileStream fs3 = new FileStream(@"F:a.txt", FileMode.OpenOrCreate);
                using (fs3)
                {
                    MemoryStream ms = new MemoryStream(10);
                    using (ms)
                    {
                        ms.WriteByte(66);
                        ms.Flush();
                        ms.WriteTo(fs3);
                        Console.WriteLine();
                    }
                }
                //文件读
                fs3 = new FileStream(@"F:a.txt", FileMode.OpenOrCreate);
                using (fs3)
                {

                    MemoryStream ms = new MemoryStream(new byte[] { (Byte)fs3.ReadByte() });
                    using (ms)
                    {

                        Console.WriteLine(ms.ReadByte());
                    }
                }

                //MemoryStream ms = new MemoryStream(50);

                //------------------------------------------------------------------------------------------
                //bufferedStream BufferedStream类,可在另一流上添加并读取一个缓冲区,继承Stream抽象类。
                //缓冲区是内存中的字节块,用于缓存数据,从而减少对操作系统的调用失败次数(处理大文件速度快)。
                //缓冲区可提高读取和写入性能,使用缓冲区可进行读取或写入操作,但不能同时进行这两种操作。
                //主要是对大数据的存储,减少频繁的访问磁盘,提高性能
                FileStream fs4 = new FileStream("D:\b.txt",FileMode.OpenOrCreate);
                BufferedStream bs = new BufferedStream(fs4);
                bs.WriteByte(70);
                bs.Close();
                fs4.Close();

  • 相关阅读:
    HDU
    POJ-1325 Machine Schedule 二分图匹配 最小点覆盖问题
    HDU- 6437.Videos 最“大”费用流 -化区间为点
    曼哈顿最小生成树 全网最全
    牛客 136G-指纹锁 set容器重载
    牛客 136J-洋灰三角 +高中数学博大精深
    数学:矩阵快速幂
    数学:Burnside引理与Pólya定理
    数据结构:树上分块
    数据结构:Bitset
  • 原文地址:https://www.cnblogs.com/wwwfj/p/3186578.html
Copyright © 2011-2022 走看看