为了账号安全,请及时绑定邮箱和手机立即绑定

用BinaryReader与FileStream的Read方法读出的byte数组有什么不同?

用BinaryReader与FileStream的Read方法读出的byte数组有什么不同?

心有法竹 2018-12-07 09:46:20
//方法如下,我初步进行比较,好像(test1()和test2())二者没什么区别,byteData中的结果都是一样的吧?//而且,用BinaryReader(既test)好像是比较标准的写法 既然结果是一样的,    他为什么要用两个类(FileStream BinaryReader)这样不觉得多此一举吗? class Program { static void Main(string[] args) { test1(); Console.ReadKey(); } static void test1() { //把文件转换成二进制流 byte[] byteData = new byte[100]; FileStream fs = new FileStream(@"c:\1.txt", FileMode.Open, FileAccess.Read); BinaryReader read = new BinaryReader(fs); read.Read(byteData, 0, byteData.Length); foreach (byte b in byteData) { Console.Write(" {0} ", b); } } static void test2() { //把文件转换成二进制流 byte[] byteData = new byte[100]; FileStream fs = new FileStream(@"c:\1.txt", FileMode.Open, FileAccess.Read); fs.Read(byteData, 0, byteData.Length); foreach (byte b in byteData) { Console.Write(" {0} ", b); } } }
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

你可以看看 BinaryReader 的其它读取方法,它可以指定 Encoding,从而实现读取字符串。

FileStream 可读可写,并且支持异步操作,还能封装非托管IO句柄,只支持文件流。

BinaryReader只能读,不支持异步操作,但支持所有继承至 Stream 的任何流,比如 NetworkStream,MemoryStream.

FileStream和BinaryReader应用了一种设计模式,你可以查查看。

查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 409 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信