技术开发 频道

操作流对象

IT168 技术文档】

    不管是MemoryStream还是FileStream,都是以字节为读写数据的基本单位。而许多情况下应用程序都是以字符(占两个字节)、数字(比如int,占4个字节)、String(若干字符的集合)来处理数据的。因此.NET提供了BinaryReader和BinaryWriter、StreamReader和StreamWriter来解决这个问题。

    1. BinaryReader和BinaryWriter:
    这两个类主要用于向流中读取和写入各种基本数据类型的数据。以下代码创建文件并写入一些数据:

private void BinaryWriteToFile() { //创建一个文件流对象 FileStream fs = new FileStream("test2.data",FileMode.Create); //将文件流对象作为参数构造一个BinaryWriter对象 BinaryWriter bw = new BinaryWriter(fs); //写入int bw.Write(100); //写入字符'A' bw.Write('A'); //写入double double d = 200.99; bw.Write(d); //写入bool bw.Write(true); //关闭自身(隐含关闭它关联的FileStream) bw.Close(); }

    BinaryWriter对象不能独立存在,它必须依托FileStream或MemoryStream对象。以下代码按原先写入的顺序读取数据:

private void BinaryReadFormFile() { //创建一个文件流对象 FileStream fs = new FileStream("test2.data",FileMode.Open); //将文件流对象作为参数构造一个BinaryReader对象 BinaryReader br = new BinaryReader(fs); //读入int MessageBox.Show(br.ReadInt32().ToString()); //读入字符 MessageBox.Show(br.ReadChar().ToString()); //读入double MessageBox.Show(br.ReadDouble().ToString()); //读入bool MessageBox.Show(br.ReadBoolean().ToString()); //关闭自身(隐含关闭它关联的FileStream) br.Close(); }

    2. StreamReader和StreamWriter:
    BinaryWriter只能把字符和字符数组写入流中,却没有提供写入字符串的方法,这个功能由StreamWriter类实现。以下代码创建一个StringData.txt,并向其中写入两个字符串:

private void WriteStringToFile() { FileStream fs = new FileStream("StringData.txt",FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("合肥工业大学"); sw.WriteLine("电子商务研究所"); sw.Close(); }

    以下代码是从文件中分两次读取数据:

private void ReadStringFromFile() { FileStream fs = new FileStream("StringData.txt",FileMode.Open); StreamReader sr = new StreamReader(fs); MessageBox.Show(sr.ReadLine()); MessageBox.Show(sr.ReadLine()); sr.Close(); }

    还可以用ReadToEnd方法,可以一次性地从当前读写指针所指的位置开始读到文件结尾。

private void ReadAllStringFromFile() { FileStream fs = new FileStream("StringData.txt",FileMode.Open); StreamReader sr = new StreamReader(fs); MessageBox.Show(sr.ReadToEnd()); sr.Close(); }

 

0
相关文章