输入输出流操作

   //流操作
           // ------------------------------------------------------------------------------------------
            //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();

posted @ 2013-07-12 16:33  youhumian  阅读(252)  评论(0编辑  收藏  举报