在寫c#**的時候,遇到乙個問題,在使用file.readalltext()開啟文字檔案的時候,除錯發現開啟的文字是亂碼,我生成的這個文字檔案是在c++程式下,以多位元組格式生成的,然後儲存的乙個文字,c# 使用file.readalltext()讀取這個文字的時候沒有指定字符集。
解決方法:
1.使用file.readalltext()讀取檔案:
file.readalltext(strfilename,system.text.encoding.default) //在後面加上預設字符集,strfilename指的是檔案的路徑加名稱(包括字尾名)
2.使用filestream和 streamreader
filestream fs = new filestream(strfilename, filemode.open,fileaccess.read,fileshare.readwrite);
streamreader sr = new streamreader(fs, encoding.default); //在後面加上預設字符集
下面是我實際專案中的實際**:
功能就是為了實現開啟並識別兩種字符集(unicode和多位元組)的文字,然後根據判斷文字的內容,進行其他操作
// 獲取測試結果
if (file.exists(ti.path + "\\testresult.txt"))//更改字符集不同的讀取的亂碼,導致測試結果無法讀取的問題,
else
fs.close();// new的物件沒有關閉導致測試結果文字被程序占用,無法上傳的問題
sr.close();
}
C 讀取文字檔案
很多初學c 的同學,對於讀取文字檔案,並按照行處理資料總是有點不知如何開始,作為c 的初學者,自己在這裡做一點筆記。其實利用c 按行讀取文字檔案其實很簡單。假設有乙個文字檔案,如下所示 1 2 3 2 3 4 3 4 5 5 6 7 7 8 9 檔名為split.txt 目的 按照行讀取資料,並乙個...
讀取文字檔案
void ctestdlg onreadinfo cfile filewrite1 testwrite1.txt cfile modecreate cfile modewrite cfile filewrite2 testwrite2.txt cfile modecreate cfile modew...
C 讀取超大文字檔案
現有乙個超大txt檔案,內部以 t分格,每行244個值,一共250萬行,大小1.9g,第一行是列名,現在要將每一行的資料讀出來進行處理,如果一次性讀進記憶體肯定是不行的。目錄 讀第一行 讀後續行 遍歷方法 使用感受 參考 string headerline file.readlines path f...