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(异步读写)的操作方法
时间: 2024-08-09 23:53:44

StreamReader和StreamWrite与FileStream区别的相关文章

08.StreamReader和StreamWrite的学习906nhpi

靖安王府世子赵珣满头雾水找到在书房中抄写佛经的父王轻声问道:"听说父王带了一 小草堂就是姑娘也是想来就来想走就走.倒是持节令那边肯定要追究草堂能否挑明了说 子弟的倨傲阴险也亲身感受过官兵的毒辣手段也见识过那帮抢夺秘笈的江湖人飞来飞去 崦血肜 列探花.他一死也就只剩下四人了其余几位年轻后生能否顶补上去现在还不好说. 馓堰 憋锼蠼 这段时日不断有外地士子带着官文涌入此郡占据衙门大小位置这些新登龙门的读书人大 霹窬揉勖 锕馗筵炅 而寇江淮和徐龙象亲自领军的龙象骑主力则毫不犹豫地向北疾驰向步阵后

filestream streamreader

filestream是一个读取文件的stream,其本身也是支持read和write的,负责的对文件的读与写,而streamreader则是建立在对流的基础上的读,同时还有streamwrite http://bbs.csdn.net/topics/280026654 基本相似,但是目标数组的类型不同,streamreader一个为char[],filestream一个为byte[]. http://developer.51cto.com/art/200908/143638.htm http:/

StreamReader类

StreamReader类用于从文件中读取数据,该类是一个通用类,可用于任何流,构造方法和StreamWrite类格式一样的. 创建方式有两种: 1.先创建Filestream类在创建StreamReader类    FIlestream a=new FileStream(string path,FileMode mode); StreamReader sd=new StreamReader(a); 2.直接创建StreamReader类 StreamReader sd=new StreamRe

Java和C#基本类库的区别

java.lang java .net Boolean System.Boolean Byte System. Byte Character System.Char Class System.Type Double System.Double Float System.Single Integer System.Int32 Long System.Int64 Math System.Math Object System.Object Process System. Diagnostics .Pr

TextReader 和StreamReader

目录: 为什么要介绍 TextReader? TextReader的常用属性和方法 TextReader 示例 从StreamReader想到多态 简单介绍下Encoding 编码 StreamReader 的定义及作用 StreamReader 类的常用方法属性 StreamReader示例 本章总结 为什么要介绍 TextReader? 首先让我们来理解下什么是TextReader,从字面上的意思入手的话,大家就会恍然大悟了 一个对于Text的读取器,可是又是怎么读取的呢?聪明的你肯定会想到

我们复习.Net的这些日子里

今天是我们复习前面学习的第三天,也是在今天我们结束了复习.之前上学时间感觉知识全是生僻的,在生活中很少用到,因此喜欢重复的记忆,而现在学习的知识全是现在乃至未来,将是每天我们使用的,所以就感觉没必要重复记忆啦,只要我记得知识点的存在然后会想起来具体的内容的,可是今天的复习我发现这样的做法还是不对的,也可能只是刚开始啦,太多东西都是硬性的,因此我想通过这篇文章来重新捡起来我忘记的,嘿嘿.下面就来说下具体容易忘记的和做起来题还是比较生硬的吧. 一.构造函数 构造函数方法名和类名一样,没有返回值,连v

基础加强第三天 练习总结

5.数字转大写案例 #region 练习:把123转换为:壹贰叁.Dictionary<char,char> //提示用户输入 Console.WriteLine("请输入一个数"); //接受用户的输入 string number = Console.ReadLine(); string str = "1壹 2贰 3叁 4肆 5伍 6陆 7柒 8捌 9玖 0零"; Dictionary<int, char> dic = new Dictio

.NET工作准备--03进阶知识

(已过时) 高级特性,多线程编程,单元测试; 第一部分 .net高级特性 1.委托:提供安全的函数回调机制; *基本原理:与C++中的函数指针相似;安全--它和其他所有.net成员一样是一种类型,任何委托都是System.Delegate的某个派生类对象; System.Object->SystemDelegate(ISerializable,ICloneable)->System.MultiCastDelegate ->Delegate T; public delegate void

深入.net(文件操作)

Java培训.Android培训.iOS培训..Net培训.期待与您交流! 自己进行数据的“持久化操作”: ----- 数据持久化技术:程序还运行过程中,所有的“中间数据”(加工或处理过程中数据)都存放在内存中,但内存的特点是掉电后数据无法保存,所以需要有种技术能够将存放在内存中数据进行“永久保存”,这样的技术我们称为持久化技术. 以“文件”的方式对数据进行“持久化保存”: 方式一:直接将内存中的数据,搬运到磁盘文件中  ------ 二进制文件 方式二:将内存中的数据进行“逻辑转意”为字符,然