[C#.NET][VB.NET]如何 讀寫 二進位 圖檔

  • 31166
  • 0
  • C#
  • 2009-10-29

[C#.NET][VB.NET]如何 讀寫 二進位 圖檔

[VB.NET] [C#.NET] 二進位讀寫器 BinaryReader類別 / BinaryWriter類別 有提到的二進位讀寫的方法,仍自覺不足,以下則整理出幾個方法。

1.在讀寫二進位檔時,設計師可以依當時情況決定要一次讀寫或是分批讀寫資料。

2.讀寫資料時可以使用MemoryStream類別BufferedStream類別來處理暫存的資料。[VB.NET][C#.NET] MemoryStream / BufferedStream 類別

3.使用串流類別可以直接讀取寫入的資料,若是使用OpenWrite方法寫資料,必須要先Close後資料才會真的寫到實體檔案,MemoryStream類別BufferedStream類別則可以直接取用,千萬不要把Close的順序弄錯了。

4.開始前需要匯入System.IO 命名空間

如何分批讀檔

下圖是將讀到的資料直接寫到記憶體。

快照-200910276283_thumb[2]

除了寫到記憶體之外,也可以直接寫到實體檔案,但別忘了使用Close方法資料才會存檔。

快照-2009102764751_thumb[2]

而使用BufferedStream類別必須搭MemoryStream類別才能逐部寫入,不知是我寫法有誤還是還有其它方法?

也可以一次寫入到BufferedStream類別

  

快照-200910276525_thumb[2]

 

 

 

 

 

 

 

 

如何一次讀入二進制檔

若無分批讀檔須求則可一次讀入陣列,再將陣列轉成MemoryStream類別,以供Image 類別使用

當然也可以不用透過MemoryStream類別直接轉成Image也可以,

  

快照-2009102773127_thumb[2]

 

使用File 類別ReadAllBytes 方法,將陣列一次讀入,再轉成Image 類別所需的格式。

快照-200910277388_thumb[2] 
  
快照-2009102774453_thumb[1] 
  
  

使用File 類別WriteAllBytes方法,寫入實體檔。

快照-2009102775223_thumb[3]

 

使用BinaryWriter 類別的BinaryWriter.Write 方法,寫入實體檔案。

快照-2009102775223_thumb[1]

 

範例下載

CS_ReadBinaryImage.rar

VB_ReadBinaryImage.rar

快照-2009102785049_thumb[6]

以上若有錯誤煩請先進不吝惜告知。

另已得知BufferedStream類別的用法請參考,[C#.NET][VB.NET] 使用 BufferedStream 複製檔案

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo