C#使用BinaryWriter类写入二进制文件1
System.IO命名空间提供了BinaryReader类和BinaryWriter类,用来完成读写二进制数据的操作,但是这两个类本身并不执行流,而是提供其他对象流的包装。
写入二进制文件:
BinaryWriter类用于从C#变量向指定流写入二进制数据,该类可以把C#数据类型转换成可以写到底层流的一系列字节。
BinaryWriter类常用方法:
Write方法:将值写入流,有很多重载版本,适用于不同的数据类型。
Flush方法:清除缓存区。
Close方法:关闭数据流。
下面介绍的C#本地读写二进制文件,二进制文件指保存在物理磁盘的一个文件。
第一步:读写文件转成流对象。其实就是读写文件流(FileStream对象,在System.IO命名空间中)。
File、FileInfo、FileStream这三个类可以将打开文件,并变成文件流。下面是引用微软对File、FileInfo、FileStream的介绍:
System.IO.File类 提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。
System.IO.FileInfo类 提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建 FileStream 对象。无法继承此类。
System.IO.FileStream类 公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。
第二步:读写流。读写二进制文件用System.IO.BinaryReader和System.IO.BinaryWriter类;读写文本文件用System.IO.TextReader和System.IO.TextWriter类。
BinaryWriter类将二进制数据写入文件示例:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main(string[]args)
{
Console.WriteLine("请输入文件名:");
string filename = Console.ReadLine(); //获取输入文件名
FileStream fs; //声明FileStream对象
try
{
fs = new FileStream(filename, FileMode.Create); //初始化FileStream对象
BinaryWriter bw = new BinaryWriter(fs); //创建BinaryWriter对象
//写入文件
bw.Write('a');
bw.Write(123);
bw.Write(456.789);
bw.Write("Hello World!");
Console.WriteLine("成功写入");
bw.Close(); //关闭BinaryWriter对象
fs.Close(); //关闭文件流
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
}
}
}