StreamReader和StreamWrite与FileStream区别

具体用法不在赘述。

记录一下用法的区别

StreamReader:

FileStream fs = new FileStream(@"D:\Readme.txt",FileMode.Open);  

StreamReader sr = new StreamReader(fs);  

StreamWrite:

FileStream fs = new FileStream(@"D:\a.txt",FileMode.CreateNew);  

StreamWriter sw = new StreamWriter(fs,Encoding.UTF8);  

FileSteam:

FileStream fs1=new FileSteam(path,Filemode.Open,Fileaccess.Read);

fs.read(...)

FileStream fs2=new FileSteam(path,Filemode.Open,Fileaccess.Write);

fs.write(...)

 

 

FileStream与StreamXXXX又有Read、write方法但他们的区别在哪呢?

  • 最大的区别在于:StreamReader/StreamWriter操作的是字符数据(char),而FileStream操作的是字节数据(byte),FileStream与StreamXXXX类的默认编码都是UTF8,而一个中文字符占2个字符,所以StreamXXXX类常用于文本的打开与保存,而FileStream则用于数据的传输。
  • FileStream是不能指定编码(因为它看到的只是文件的二进制形式,当然无所谓编码),所以如果有中文的文本的话需要转码。
  • FileStream是一个较底层的类,只能简单地读文件到缓冲区,而StreamXXXX类封装了一些高级的方法,如ReadLine() (按行读取)
  • FileStream可以指定FileMode、FileAccess、FileShare、FileOptions等各种文件访问控制权限、共享权限等,大大扩展了文件读写的灵活性,而且FileStreamFileStream还提供了BeginRead/BeginWrite(异步读写)的操作方法

你可能感兴趣的:(Stream)