首页  ·  知识 ·  编程语言
C#使用BinaryWriter和BinaryReader读写文件
网友   http://www.mzwu.com/  .NET  编辑:德仔   图片来源:网络
FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操作,于是StreamWriter和StreamReader类增强了FileStream,它让我们在字
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) + " ");
    }
}
本文作者:网友 来源: http://www.mzwu.com/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读