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);
   }
}
}

posted on 2012-08-05 15:21  流星落  阅读(4245)  评论(0编辑  收藏  举报

导航