-
StreamReader
自動編碼檢測:- 使用
StreamReader
可以自動檢測檔案的編碼(包括 UTF-8 BOM、UTF-16、等),並選擇合適的編碼來讀取檔案。它透過detectEncodingFromByteOrderMarks: true
來啟用 BOM 檢測功能。
- 使用
-
字元處理:
StreamReader
讀取的是字元流,而不是位元組流,因此不需要手動處理編碼轉換問題,可以直接處理檔案中的字元。
static bool IsmFile(string filePath)
{
try
{
using (var reader = new StreamReader(filePath, detectEncodingFromByteOrderMarks: true))
{
// 讀取檔案的前3個字元
char[] buffer = new char[3];
int charsRead = reader.Read(buffer, 0, buffer.Length);
// 如果檔案不足3個字元,返回 false
if (charsRead < 3)
{
return false;
}
// 轉換為字串,並進行不區分大小寫的比較
string header = new string(buffer);
return header.Equals("ABC", StringComparison.OrdinalIgnoreCase);
}
}
catch (IOException)
{
Console.WriteLine("Error reading the file.");
return false;
}
}
}