码迷,mamicode.com
首页 > 其他好文 > 详细

04_FileStream 类

时间:2017-03-22 12:44:22      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:写入文件   efault   ons   读取   释放   adk   test   span   sys   

公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。

1)读取

       /*
             * File类最大的问题是,一次性读取,如果文件较大的话,会给内存造成很大压力。
             * 文件流:把一个较大的文件,可以分成一点一点的读取和写入,内存压力很小。
             * 三种文件流类:FileStream:操作字节(byte),可读可写,可以操作任何文件。
             *             StreamReader+StreamWriter:操作字符,操作文本文件。
             */

            //1、创建文件流对象
            string path=@"D:\CSharp_Net\课件\相约未知地带.txt";
            FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read);

            //2、创建一个读取缓冲区,可以保存3MB的数据
            byte[] buffer=new byte[1024*1024*3];

            //3、读取数据,返回值表示的是每次读取到的实际字节数
            int r = fsRead.Read(buffer, 0, buffer.Length);

            //4、把读取到的字节型数据,解析成字符串
            string s = Encoding.Default.GetString(buffer,0,r);

            //5、GC有一些资源是无法去回收的,FileStream就是其中的一种
            //所以,需要手动将FileStream对象所占的资源释放掉
            fsRead.Close();//关闭对象
            fsRead.Dispose();//释放资源

            Console.WriteLine(s);
            Console.ReadKey();

2)写入

        string path = @"D:\CSharp_Net\课件\Test.txt";
            //将实现了IDisposable接口的类的对象放进using里面,
            //结束using过程后,会自动调用Dispose方法来释放对象所占的资源

            //创建写入对象
            using(FileStream fsWrite=new FileStream(path,FileMode.OpenOrCreate,FileAccess.Write))
            {
                //写入的内容
                string s="谭科,我好想你啊。";

                //将要写入的内容解析成字节数组
                byte[] buffer = Encoding.Default.GetBytes(s);
                
                //将字节数组内容写入文件
                fsWrite.Write(buffer, 0, buffer.Length);
            }
            Console.WriteLine("写入成功");
            Console.ReadKey();

 

04_FileStream 类

标签:写入文件   efault   ons   读取   释放   adk   test   span   sys   

原文地址:http://www.cnblogs.com/pyGIS/p/6599052.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!