C# 向二進(jìn)制文件進(jìn)行讀寫(xiě)的操作方法
完整代碼如下:
引入命名空間:
using System.IO;
完整代碼:
namespace BinaryStreamApp
{
class Program
{
static void Main(string[] args)
{
//為文件打開(kāi)一個(gè)二進(jìn)制寫(xiě)入器
FileStream fs;
fs = new FileStream("C:\\BinFile.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite);
BinaryWriter bw = new BinaryWriter(fs);
//準(zhǔn)備不同類(lèi)型的數(shù)據(jù)
double aDouble = 1234.56;
int aInt = 34567;
char[] aCharArray = { 'A', 'B', 'C' };
//利用Write 方法的多種重載形式寫(xiě)入數(shù)據(jù)
bw.Write(aDouble);
bw.Write(aInt);
bw.Write(aCharArray);
int length = Convert.ToInt32(bw.BaseStream.Length);
fs.Close();
bw.Close();
//讀取并輸出數(shù)據(jù)
fs = new FileStream("C:\\BinFile.dat", FileMode.OpenOrCreate, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
Console.WriteLine(br.ReadDouble().ToString());
Console.WriteLine(br.ReadInt32().ToString());
char[] data = http://chabaoo.cn/andrew-blog/archive/2011/12/02/br.ReadChars(length);
for (int i = 0; i < data.Length; i++)
{
Console.WriteLine("{0,7:x}",data[i]);
}
fs.Close();
br.Close();
Console.ReadLine();
}
}
}
運(yùn)行效果:
在這個(gè)例子中,使用BinaryWriter對(duì)象的Write方法向文件寫(xiě)入Double類(lèi)型的變量 aDouble 時(shí),由于參數(shù)是Double類(lèi)型,因此調(diào)用Write(Double)的重載形式,向文件流寫(xiě)入一個(gè)固定長(zhǎng)度為8字節(jié)的浮點(diǎn)類(lèi)型數(shù)據(jù)。與此對(duì)應(yīng),讀取該數(shù)據(jù)時(shí),采用ReadDouble()方法從當(dāng)前流中讀取8字節(jié)浮點(diǎn)值。
當(dāng)寫(xiě)入Int32 類(lèi)型的變量 aInt 時(shí),系統(tǒng)自動(dòng)調(diào)用Write(Int32) 方法,向文件流中寫(xiě)入4 字節(jié)有符號(hào)整數(shù),讀取數(shù)據(jù)時(shí),調(diào)用ReadInt32()方法,從文件流中讀取4字節(jié)長(zhǎng)度的數(shù)據(jù)。
可以看出,BinaryReader 和 BinaryWriter 對(duì)象在向流中寫(xiě)入和讀取整型、浮點(diǎn)型等具有固定長(zhǎng)度類(lèi)型的數(shù)據(jù)時(shí),非常方便。
相關(guān)文章
C#實(shí)現(xiàn)動(dòng)態(tài)加載dll的方法
這篇文章主要介紹了C#實(shí)現(xiàn)動(dòng)態(tài)加載dll的方法,涉及針對(duì)動(dòng)態(tài)鏈接庫(kù)的靈活操作技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12RegexOptions.IgnoreCase正則表達(dá)式替換,忽略大小寫(xiě)
RegexOptions.IgnoreCase正則表達(dá)式替換,忽略大小寫(xiě),需要的朋友可以參考一下2013-03-03C#使用DeflateStream解壓縮數(shù)據(jù)文件的方法
這篇文章主要介紹了C#使用DeflateStream解壓縮數(shù)據(jù)文件的方法,較為詳細(xì)的分析了DeflateStream方法對(duì)文件進(jìn)行壓縮及解壓縮的步驟與技巧,需要的朋友可以參考下2015-04-04