BinaryWriter和BinaryReader用法


  C#的FileStream類提供了最原始的字節級上的文件讀寫功能,但我們習慣於對字符串操作,於是StreamWriter和 StreamReader類增強了FileStream,它讓我們在字符串級別上操作文件,但有的時候我們還是需要在字節級上操作文件,卻又不是一個字節 一個字節的操作,通常是2個、4個或8個字節這樣操作,這便有了BinaryWriter和BinaryReader類,它們可以將一個字符或數字按指定 個數字節寫入,也可以一次讀取指定個數字節轉為字符或數字。

下面看一個實例:

BinaryWriterBinaryReader 類用於讀取和寫入數據,而不是字符串。下面的代碼示例演示如何向新的空文件流 (Test.data) 寫入數據及從中讀取數據。在當前目錄中創建了數據文件之后,也就同時創建了相關的 BinaryWriterBinaryReaderBinaryWriter 用於向 Test.data 寫入整數 0 到 10,Test.data 將文件指針置於文件尾。在將文件指針設置回初始位置后,BinaryReader 讀出指定的內容。

using System;
using System.IO;
class MyStream 
{
    private const string FILE_NAME = "Test.data";
    public static void Main(String[] args) 
    {
        // Create the new, empty data file.
        if (File.Exists(FILE_NAME)) 
        {
            Console.WriteLine("{0} already exists!", FILE_NAME);
            return;
        }
        FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew);
        // Create the writer for data.
        BinaryWriter w = new BinaryWriter(fs);
        // Write data to Test.data.
        for (int i = 0; i < 11; i++) 
        {
            w.Write( (int) i);
        }
        w.Close();
        fs.Close();
        // Create the reader for data.
        fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);
        BinaryReader r = new BinaryReader(fs);
        // Read data from Test.data.
        for (int i = 0; i < 11; i++) 
        {
            Console.WriteLine(r.ReadInt32());
        }
        r.Close();
        fs.Close();
    }
}

有關該類的成員參見

http://msdn.microsoft.com/zh-cn/library/system.io.binaryreader_members%28v=vs.80%29.aspx

 

 


免責聲明!

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



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