C#二進制文件的讀寫


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM