使用 FileStream 類讀取和寫入位元組陣列到檔案的 C# 程式


C# 是一種功能強大的面向物件程式語言,用於開發各種應用程式。在本文中,我們將討論如何編寫一個 C# 程式,使用 FileStream 類將位元組陣列讀取和寫入檔案。

步驟 1:建立位元組陣列

此程式的第一步是建立一個我們要寫入檔案的位元組陣列。這是一個示例 -

byte[] byteArray = { 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64 };

步驟 2:將位元組陣列寫入檔案

下一步是使用 FileStream 類將位元組陣列寫入檔案。我們需要建立一個 FileStream 類的新的例項,並將檔案路徑、FileMode、FileAccess 和 FileShare 作為引數傳遞給它的建構函式。這是一個示例 -

string filePath = "C:\MyFile.txt";
using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)) {
   fileStream.Write(byteArray, 0, byteArray.Length);
}

步驟 3:從檔案讀取位元組陣列

要從檔案讀取位元組陣列,我們需要建立一個 FileStream 類的新的例項,並將檔案路徑、FileMode、FileAccess 和 FileShare 作為引數傳遞給它的建構函式。然後,我們建立一個位元組陣列,並使用 FileStream 類的 Read() 方法將檔案內容讀取到位元組陣列中。這是一個示例 -

byte[] readByteArray = new byte[byteArray.Length];
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
   fileStream.Read(readByteArray, 0, readByteArray.Length);
}

步驟 4:比較位元組陣列

最後,我們需要比較原始位元組陣列和從檔案讀取的位元組陣列,以確保它們相同。我們可以使用 Enumerable 類的 SequenceEqual() 方法來比較這兩個位元組陣列。這是一個示例 -

bool areEqual = byteArray.SequenceEqual(readByteArray);

示例

這是一個完整的 C# 程式 -

using System;
using System.IO;
using System.Linq;

namespace ByteArrayToFile {
   class Program {
      static void Main(string[] args) {
         byte[] byteArray = { 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64 };
         string filePath = "C:\MyFile.txt";
         
         // Write byte array to file
         using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)) {
            fileStream.Write(byteArray, 0, byteArray.Length);
         }
         
         // Read byte array from file
         byte[] readByteArray = new byte[byteArray.Length];
         using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
            fileStream.Read(readByteArray, 0, readByteArray.Length);
         }

         // Compare the byte arrays
         bool areEqual = byteArray.SequenceEqual(readByteArray);
         Console.WriteLine("Are the byte arrays equal? " + areEqual);
      }
   }
}

輸出

Are the byte arrays equal? True

結論

在本文中,我們學習瞭如何編寫一個 C# 程式,使用 FileStream 類將位元組陣列讀取和寫入檔案。此程式可用於各種場景,例如讀取和寫入影像或音訊檔案。透過理解本文中介紹的概念,您可以開發更高階的應用程式,這些應用程式需要檔案輸入和輸出。希望本文對您的程式設計之旅有所幫助。編碼愉快!

更新於: 2023年5月4日

6K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告