当前位置:编程学习 > C#/ASP.NET >>

C#IO问题请教各位大虾

我刚接触C#,对里面的IO操作有些不明白的地方,还请各位大虾详细讲解一哈!

我的理解是File类是对文件本身操作,FileStream是以比特流的方式对文件内容进行操作,StreamReader是以字符流的方式对文件内容进行操作;现在不明白的地方是:在使用StreamReader的时候为什么还要先读入FileStream流,StreamReader本身可以直接对文件进行读写,如下:

StreamReader sr = new StreamReader(this.openFileDialog1.FileName);

this.richTextBox1.Text = sr.ReadToEnd();

但是我们的程序大都是以这样的方式写的,如下:FileStream fs = File.Open(this.openFileDialog1.FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None);

StreamReader sr = new StreamReader(fs);

this.richTextBox1.Text = sr.ReadToEnd();

我想知道这样的方式处理IO比直接用StreamReader读取文件有什么好的地方,有朋友说FileStream可以随机读取文件,所以才要配合使用,这个解释让我更不明白了,希望理解清楚的大侠讲解一下,谢谢



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Jankin/archive/2010/03/23/5407701.aspx --------------------编程问答-------------------- 我晕.楼主问个问题还声明下转载注明出处,版权意识好强,呵呵~
streamreader可以从流中读,也就是说不必非要是个文件
filestream要从文件中读,如果是内存中的流,他就捉襟见肘了.
其实两者并不需要跟是非一样要明辨清楚,能用哪个就用哪个,对效率没有明显影响或者提升.
这个牛角尖钻不得~ --------------------编程问答-------------------- 我就觉得是为了构造对象更方便!还请3楼指点! --------------------编程问答-------------------- 1.总结如下:在.net 当中的流信息都是以串接的方式构建成高级的应用,其实最后最重要的还是Stream,实用File.Open获取到的信息是一个文件流信息,你使用new FileStream()也是一个文件流信息,但是2者的结果是一样的,其中的构建方式不一样的就不一样了File.open先不说内部构建方式如何就从构建的方式来说一个是使用静态的一个是使用实例(在这个问题效率就可以看出来)具体的效率问题就要看File里面的实现了 --------------------编程问答--------------------   你指的是这个吗: 直接创建StreamWriter对象不会提供一组选项;因为在创建FileStream时,构造函数中有FileMode和FileAccess属性的选项,可以对文件进行读/写权限;但是SreamWriter没有提供。如果要使用高级参数的话,还是先创建FileStream对象吧。 --------------------编程问答-------------------- 路过,学得不够精细
继续围观学习
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,