不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
C#使用BinaryWriter和BinaryReader读写文件
编辑:dnawo 日期:2010-01-18
C#的FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操作,于是StreamWriter和StreamReader类增强了FileStream,它让我们在字符串级别上操作文件,但有的时候我们还是需要在字节级上操作文件,却又不是一个字节一个字节的操作,通常是2个、4个或8个字节这样操作,这便有了BinaryWriter和BinaryReader类,它们可以将一个字符或数字按指定个数字节写入,也可以一次读取指定个数字节转为字符或数字:
复制内容到剪贴板
程序代码

//写入
using (FileStream fs = new FileStream(@"D:\Binary", FileMode.Create))
{
using (BinaryWriter writer = new BinaryWriter(fs))
{
writer.Write(true);
writer.Write((byte)1); //用1个字节写入
writer.Write((short)2); //用2个字节写入
writer.Write((int)3); //用4个字节写入
writer.Write((long)4); //用8个字节写入
writer.Write(new byte[] { 0xFF, 0xD9 });
}
}
//读取
using (FileStream fs = new FileStream(@"D:\Binary", FileMode.Open, FileAccess.Read))
{
using (BinaryReader reader = new BinaryReader(fs))
{
Console.WriteLine(reader.ReadBoolean());
Console.WriteLine(reader.ReadByte()); //一次读取1个字节转为byte
Console.WriteLine(reader.ReadInt16()); //一次读取2个字节转为short
Console.WriteLine(reader.ReadInt32()); //一次读取4个字节转为int
Console.WriteLine(reader.ReadInt64()); //一次读取8个字节转为long
byte[] b = reader.ReadBytes(2);
for (int i = 0; i < b.Length; i++)
Console.Write(Convert.ToString(b[i], 16) + " ");
}
}
using (FileStream fs = new FileStream(@"D:\Binary", FileMode.Create))
{
using (BinaryWriter writer = new BinaryWriter(fs))
{
writer.Write(true);
writer.Write((byte)1); //用1个字节写入
writer.Write((short)2); //用2个字节写入
writer.Write((int)3); //用4个字节写入
writer.Write((long)4); //用8个字节写入
writer.Write(new byte[] { 0xFF, 0xD9 });
}
}
//读取
using (FileStream fs = new FileStream(@"D:\Binary", FileMode.Open, FileAccess.Read))
{
using (BinaryReader reader = new BinaryReader(fs))
{
Console.WriteLine(reader.ReadBoolean());
Console.WriteLine(reader.ReadByte()); //一次读取1个字节转为byte
Console.WriteLine(reader.ReadInt16()); //一次读取2个字节转为short
Console.WriteLine(reader.ReadInt32()); //一次读取4个字节转为int
Console.WriteLine(reader.ReadInt64()); //一次读取8个字节转为long
byte[] b = reader.ReadBytes(2);
for (int i = 0; i < b.Length; i++)
Console.Write(Convert.ToString(b[i], 16) + " ");
}
}
评论: 0 | 引用: 0 | 查看次数: 11002
发表评论
请登录后再发表评论!