C#使用BinaryReader類讀取二進制文件


BinaryReader類用來讀取二進制數據,其讀取數據的方法很多,常用方法如下:

Close():關閉BinaryReader對象;

Read():從指定流讀取數據,並將指針遷移,指向下一個字符。

ReadDecimal():從指定流讀取一個十進制數值,並將在流中的位置向前移動16個字節。
  
ReadByte():從指定流讀取一個字節值,並將在流中的位置向前移動一個字節。
  
ReadInt16():從指定流讀取兩個字節帶符號整數值,並將在流中的位置向前移動兩個字節。

ReadInt32():從指定流讀取兩個字節帶符號整數值,並將在流中的位置向前移動兩個字節。

ReadString():從指定流讀取字符串,該字符串的前綴為字符串長度,編碼為整數,每次7比特。

BinaryReader類創建對象時必須基於所提供的流文件。

使用BinaryReader類讀取二進制數據實例:

我們使用上節寫入的文本文件

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
public class MyClass
{
public static void Main()
{
   string path = @"C:\123.txt";
   FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
   BinaryReader br = new BinaryReader(fs);
   char cha;
   int num;
   double doub;
   string str;
   try
   {
    while (true)
    {
     cha = br.ReadChar();
     num = br.ReadInt32();
     doub = br.ReadDouble();
     str = br.ReadString();
     Console.WriteLine("{0},{1},{2},{2}", cha, num, doub, str);
    }
   }
   catch (EndOfStreamException e)
   {
    Console.WriteLine(e.Message);
    Console.WriteLine("已經讀到末尾");
   }
   finally
   {
    Console.ReadKey();
   }
}
}

我們利用創建的文件作為源文件,創建了FileStream對象,並基於該對象創建了BinaryReader對象,調用BinaryReader對象的讀取文件內容的各個方法,分別讀出源文件中的字符,整型數據,雙精度數據和字符串。由於不確定要遍歷多少次才能讀取文件末尾,出現EndStreamException異常。循環內讀取的數據被輸出到控制台。


免責聲明!

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



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