BinaryReader和BinaryWriter类用于读取和写入二进制文件。
BinaryReader类用于从文件中读取二进制数据。通过将FileStream对象传递给其构造函数来创建BinaryReader对象。
Sr.No. | Method & 描述 |
---|---|
1 | public override void close() 它关闭BinaryReader流。 |
2 | public virtual int read() 从基础流中读取字符并前进流的当前位置。 |
3 | public virtual bool ReadBoolean() 从当前流中读取布尔值,并将流的当前位置向前推进一个字节。 |
4 | public virtual byte ReadByte() 从当前流中读取下一个字节,并将流的当前位置向前推进一个字节。 |
5 | public virtual byte[]ReadBytes(Int Count) 从当前流中读取指定数目的字节到字节数组中,并将当前位置向前推进该数目的字节。 |
6 | public virtual char ReadChar() 从当前流中读取下一个字符,并根据使用的编码和从流中读取的特定字符前进流的当前位置。 |
7 | public virtual char[]ReadChars(Int Count) 从当前流中读取指定数量的字符,以字符数组形式返回数据,并根据使用的编码和从流中读取的特定字符前进当前位置。 |
8 | public virtual Double ReadDouble() 从当前流中读取8字节的浮点值,并将流的当前位置向前推进8个字节。 |
9 | public virtual int ReadInt32() 从当前流中读取4字节有符号整数,并将流的当前位置向前推进4个字节。 |
10 | public virtual string ReadString() 从当前流中读取字符串。字符串以长度作为前缀,一次编码为七位的整数。 |
BinaryWriter类用于将二进制数据写入流。BinaryWriter对象是通过将FileStream对象传递给其构造函数来创建的。
Sr.No. | Function & 描述 |
---|---|
1 | public override void close() 它关闭BinaryWriter对象流。 |
2 | public virtual void flush() 清除当前writer的所有缓冲区,并使任何缓冲数据写入基础设备。 |
3 | public virtual long Seek(int offset,SeekOrigin Origin) 设置当前流中的位置。 |
4 | public virtual void Write(bool value) 将一个字节的布尔值写入当前流,0表示false,1表示true。 |
5 | public virtual void Write(byte value) 将无符号字节写入当前流,并将流位置向前推进一个字节。 |
6 | public virtual void write(byte[]buffer) 链接:https://www.learnfk.comhttps://www.learnfk.com/csharp/csharp-binary-files.html 来源:LearnFk无涯教程网 将字节数组写入基础流。 |
7 | public virtual void write(Char Ch) 将Unicode字符写入当前流,并根据使用的编码和正在写入流的特定字符前进流的当前位置。 |
8 | public virtual void write(char[]chars) 将字符数组写入当前流,并根据使用的编码和正在写入流的特定字符前进流的当前位置。 |
9 | public virtual void write(double value) 将一个8字节的浮点值写入当前流,并将流位置向前推进8个字节。 |
10 | public virtual void Write(int value) 将四个字节的有符号整数写入当前流,并将流位置前进四个字节。 |
11 | public virtual void Write(string value) 在BinaryWriter的当前编码中将长度前缀的字符串写入此流,并根据所使用的编码和正在写入流的特定字符前进流的当前位置。 |
下面的示例演示读取和写入二进制数据-
using System; using System.IO; namespace BinaryFileApplication { class Program { static void Main(string[] args) { BinaryWriter bw; BinaryReader br; int i = 25; double d = 3.14157; bool b = true; string s = "I am happy"; //create the file try { bw = new BinaryWriter(new FileStream("mydata", FileMode.Create)); } catch (IOException e) { Console.WriteLine(e.Message + "\n Cannot create file."); return; } //writing into the file try { bw.Write(i); bw.Write(d); bw.Write(b); bw.Write(s); } catch (IOException e) { Console.WriteLine(e.Message + "\n Cannot write to file."); return; } bw.Close(); //reading from the file try { br = new BinaryReader(new FileStream("mydata", FileMode.Open)); } catch (IOException e) { Console.WriteLine(e.Message + "\n Cannot open file."); return; } try { i = br.ReadInt32(); Console.WriteLine("Integer data: {0}", i); d = br.ReadDouble(); Console.WriteLine("Double data: {0}", d); b = br.ReadBoolean(); Console.WriteLine("Boolean data: {0}", b); s = br.ReadString(); Console.WriteLine("String data: {0}", s); } catch (IOException e) { Console.WriteLine(e.Message + "\n Cannot read from file."); return; } br.Close(); Console.ReadKey(); } } }
编译并执行上述代码时,将生成以下输出-
Integer data: 25 Double data: 3.14157 Boolean data: True String data: I am happy
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)