请问,这个BinaryWriter类的用法

f3bbb3 2012-08-28 10:01:53
BinaryWriter类:MSDN以二进制形式将基元类型写入流,并支持用特定的编码写入字符串。

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

再看MSDN的这个例子:

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,简直不懂...
...全文
354 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonespace 2012-08-29
  • 打赏
  • 举报
回复
BinaryReader 、BinaryWriter其实只是方便你用二进制方式读写int,double,string之类的数据,

StreamWriter/StreamReader和BinaryReader/BinaryWriter完全不同,StreamWriter/StreamReader操作的文件是文本文件,通常是txt文件,你可以用记事本来看得到你写入的数据,同样你用记事本生成的txt文件也能被StreamReader读取,

但BinaryReader/BinaryWriter操作的文件是二进制文件,不是文本文件,你可以用记事本打开BinaryWriter生成的文件,你会发现都是乱码,它并不是你想象的由0,1等字符组成的文件,呵呵,
f3bbb3 2012-08-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
BinaryReader 、BinaryWriter其实只是方便你用二进制方式读写int,double,string之类的数据,

StreamWriter/StreamReader和BinaryReader/BinaryWriter完全不同,StreamWriter/StreamReader操作的文件是文本文件,通常是txt文件,你可以用记事本来看得到你写入的数据,同样你用记事本生成的txt……
[/Quote]
请问两个问题:
1:“以二进制的形式写入文件”,那就是由0、1组成的字符吧,不然,为什么叫二进制呢?
2:你所说的“二进制文件”又是怎么理解?是以什么作为后缀的?
f3bbb3 2012-08-29
  • 打赏
  • 举报
回复
请问两个问题:
1:“以二进制的形式写入文件”,那就是由0、1组成的字符吧,不然,为什么叫二进制呢?
2:“二进制文件”又是怎么理解?是以什么作为后缀的?
IT-Style 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

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


从MSDN的解释,BinaryReader是将数据读成二进制值,那读出来就应该是二进制值啊,只有0、1那种,怎么又是字符串呢?
[/Quote]
BinaryReader有ReadByte,ReadBytes,Read方法,它们读取出来的是原生态的二进制值,像ReadInt32,ReadDouble它们相当于多了一步处理,将二进制值转换成相应的数据类型.
f3bbb3 2012-08-28
  • 打赏
  • 举报
回复
BinaryReader类:MSDN,用特定的编码将基元数据类型读作二进制


从MSDN的解释,BinaryReader是将数据读成二进制值,那读出来就应该是二进制值啊,只有0、1那种,怎么又是字符串呢?
  • 打赏
  • 举报
回复
当存储一些特殊类型时,就可以利用BinaryReader ,你比如说图片

举个例子,在sql数据库中存储图片,怎么办?虽然数据库中有Image类型,但是Image数据类型存储的是长度不确定的二进制数据,那么在存储图片到数据库的时候,就要先将图片转化为二进制流,然后存入Image

调取图片的时候再以流的形式读出转换成图片

而对于一般的类型,字符串等都有相应的存储类型,也没必要以流读取

个人觉得只是为数据的通用存储以及读取提供了一种便利。

111,101

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧