具体用法不在赘述。

记录一下用法的区别

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(异步读写)的操作方法

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

  1. StreamReader和StreamWrite和FileStream区别和用法

    一.<1>StreamReader类共有10个构造函数 StreamReader (Stream)    //  为指定的流初始化 StreamReader 类的新实例. FileStre ...

  2. 08.StreamReader和StreamWrite的学习

    StreamReader和StreamWrite是用来操作字符的 namespace _21.对StreamReader和StreamWriter的学习 { class Program { stati ...

  3. filestream streamreader

    filestream是一个读取文件的stream,其本身也是支持read和write的,负责的对文件的读与写,而streamreader则是建立在对流的基础上的读,同时还有streamwrite ht ...

  4. StreamReader类

    StreamReader类用于从文件中读取数据,该类是一个通用类,可用于任何流,构造方法和StreamWrite类格式一样的. 创建方式有两种: 1.先创建Filestream类在创建StreamRe ...

  5. 关于StreamReader的知识分享

    今天我们来简单的介绍一下StreamReader,在将StreamReader之前,我们先来了解一下他的父类:TextReader.对于TextReader,大家可能比较陌生,下面我们来看一下Text ...

  6. C#中流的读写器BinaryReader、BinaryWriter,StreamReader、StreamWriter详解【转】

    https://blog.csdn.net/ymnl_gsh/article/details/80723050 C#的FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操 ...

  7. Java和C#基本类库的区别

    java.lang java .net Boolean System.Boolean Byte System. Byte Character System.Char Class System.Type ...

  8. TextReader 和StreamReader

    TextReader 和StreamReader 目录: 为什么要介绍 TextReader? TextReader的常用属性和方法 TextReader 示例 从StreamReader想到多态 简 ...

  9. C# Stream篇(二) -- TextReader 和StreamReader

    TextReader 和StreamReader 目录: 为什么要介绍 TextReader? TextReader的常用属性和方法 TextReader 示例 从StreamReader想到多态 简 ...

随机推荐

  1. centosx64位寄存器

    [root@monitor ~]# uname -aLinux monitor 2.6.32-431.23.3.el6.x86_64 #1 SMP Thu Jul 31 17:20:51 UTC 20 ...

  2. 【ZZ】大数据架构师基础:hadoop家族,Cloudera系列产品介绍

    http://www.36dsj.com/archives/17192 大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为 ...

  3. HTML转换成word文档

    1工具类保存word文件 public class WordAction { public static void SaveAsWord(string fileName, string pFileNa ...

  4. Windows 10正式版官方原版ISO镜像下载

    [微软官方]下载地址1:官方下载工具(32-位系统版本)官方下载工具(64-位系统版本) [MSDN]下载地址2:cn_windows_10_multiple_editions_x64_dvd_684 ...

  5. C++_直接插入排序(纯C版)

    //用于比较大小 int compared(const void *key1,const void *key2) { cout<<"enter compare"< ...

  6. Peter's Hobby

    Problem Description Recently, Peter likes to measure the humidity of leaves. He recorded a leaf humi ...

  7. jqcss选择器

    $("p").css("background-color","red"); $(this) 当前 HTML 元素$("p" ...

  8. 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败/OLE DB 错误: OLE DB 或 ODBC 错误 :

    用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败/OLE DB 错误: OLE DB 或 ODBC 错误 : 2012-2-23 上午 ,弄SAAS时,发现在生成多维数据集 ...

  9. alfresco 5.0 document

    http://docs.alfresco.com/community/tasks/imagemagick-config.html

  10. [改善Java代码]频繁插入和删除时使用LinkedList

    一.分析 前面有文章分析了列表的表里方式,也就是“读”的操作.本文将介绍表的“写”操作:即插入.删除.修改动作. 二.场景 1.插入元素 列表中我们使用最多的是ArrayList,下面看看他的插入(a ...