System.IO提供了BinaryReader和BinaryWriter類,用於按二進制模式讀寫文件。他們提供的一些讀寫方法是對稱的,比如針對不同的數據結構,BinaryReader提供了ReadByte、ReadBoolean、ReadInt、ReadInt16、ReadDouble、ReadString等方法,而BinaryWriter則提供了WriteByte、WriteBoolean、WriteInt、WriteInt16、WriteDouble、WriteString方法。
【例】將內存中隨機產生的二進制數據寫入文件,並驗證寫入數據是否正確。
using System; using System.IO; namespace BinaryRW { class Program { static void Main(string[] args) { int i = 0; //創建隨機數據寫入流 byte[] writeArray = new byte[1000]; new Random().NextBytes(writeArray); BinaryWriter binWriter = new BinaryWriter(new MemoryStream()); BinaryReader binReader = new BinaryReader(binWriter.BaseStream); try { //將數據寫入流 Console.WriteLine("正在寫數據…"); for (i = 0; i < writeArray.Length; i++) { binWriter.Write(writeArray[i]); } //流定位到開始位置 binReader.BaseStream.Position = 0; //讀取流中的數據 for (i = 0; i < writeArray.Length; i++) { if (binReader.ReadByte() != writeArray[i]) { Console.WriteLine("寫數據錯"); return; } } Console.WriteLine("數據已寫入"); } //捕獲EndOfStreamException 異常,輸出錯誤信息 catch (EndOfStreamException e) { Console.WriteLine("寫數據出錯\n{0}", e.GetType().Name); } Console.ReadLine(); } } }