博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BinaryReader 、BinaryWriter是方便用二进制方式读写int,double,string之类的数据
阅读量:7095 次
发布时间:2019-06-28

本文共 1944 字,大约阅读时间需要 6 分钟。

 BinaryWriter类:以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。

这个MSDN的解释,是不是说BinaryWriter类是将数据以二进制的形式写入文件,在文件中显示的是0、1组成的东西?
再看的这个例子:

class MyStream{    private const string FILE_NAME = "Test.data";    public static void Main()    {        if (File.Exists(FILE_NAME))        {            Console.WriteLine("{0} already exists!", FILE_NAME);            return;        }        using (FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew))        {            using (BinaryWriter w = new BinaryWriter(fs))            {                              for (int i = 0; i < 11; i++)                {                    w.Write(i);                }            }        }        using (FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read))        {            using (BinaryReader r = new BinaryReader(fs))            {                for (int i = 0; i < 11; i++)                {                    Console.WriteLine(r.ReadInt32());                }            }        }    }}

 

 

上面的代码,想文件写入0----10的数字,再读取出来,读出来也是0----10的数字,。整个过程和StreamWriter和StreamReader不是一样吗?能说明BinaryReader 有什么特殊吗?怎么体现出它是以二进制写入文件的呢?
这几天对BinaryReader 、BinaryWriter,简直不懂...

当存储一些特殊类型时,就可以利用BinaryReader ,你比如说图片

举个例子,在sql数据库中存储图片,怎么办?虽然数据库中有Image类型,但是Image数据类型存储的是长度不确定的二进制数据,那么在存储图片到数据库的时候,就要先将图片转化为二进制流,然后存入Image
调取图片的时候再以流的形式读出转换成图片
而对于一般的类型,字符串等都有相应的存储类型,也没必要以流读取
个人觉得只是为数据的通用存储以及读取提供了一种便利。

 

 

BinaryReader 、BinaryWriter其实只是方便你用二进制方式读写int,double,string之类的数据,

StreamWriter/StreamReader和BinaryReader/BinaryWriter完全不同,StreamWriter/StreamReader操作的文件是文本文件,通常是txt文件,你可以用记事本来看得到你写入的数据,同样你用记事本生成的txt文件也能被StreamReader读取,
但BinaryReader/BinaryWriter操作的文件是二进制文件,不是文本文件,你可以用记事本打开BinaryWriter生成的文件,你会发现都是乱码,它并不是你想象的由0,1等字符组成的文件,呵呵,

 

BinaryReader类:MSDN,用特定的编码将基元数据类型读作二进制

从MSDN的解释,BinaryReader是将数据读成二进制值,那读出来就应该是二进制值啊,只有0、1那种,怎么又是字符串呢?

BinaryReader有ReadByte,ReadBytes,Read方法,它们读取出来的是原生态的二进制值,像ReadInt32,ReadDouble它们相当于多了一步处理,将二进制值转换成相应的数据类型.

 

转载于:https://www.cnblogs.com/rechen/p/5088012.html

你可能感兴趣的文章
视错觉:从一个看似简单的自定义控件说起
查看>>
半年的房子装修
查看>>
关于开发中 hosts 文件的修改
查看>>
WebView使用配置文件
查看>>
深入浅出的javascript的正则表达式学习教程
查看>>
13 适配器
查看>>
在Linux上挂载Windows共享文件夹,如何开机自动挂载(mount)
查看>>
安装和使用cocoaPods
查看>>
Erlang学习: EUnit Testing for gen_fsm
查看>>
Android开发之多媒体编程之获取图片的副本
查看>>
nginx用户认证配置( Basic HTTP authentication)
查看>>
JavaScript与DOM(上)
查看>>
关于caffe-windows中 compute_image_mean.exe出现的问题
查看>>
技术人的未来(一)——跳槽
查看>>
asp.net 下载Excel (数据流,不保存)--客户端
查看>>
复习面向对象的OOA、OOD、OOP
查看>>
poj 2891 Strange Way to Express Integers(中国剩余定理)
查看>>
是男人就下100层【第五层】——2048游戏从源代码到公布市场
查看>>
算法:最长上升下降子序列
查看>>
F - The Circumference of the Circle
查看>>