我們上個例子中的**:
using system;
using system.collections.generic;
using system.text;
using system.io;
class program
sr.close();
}catch (ioexception ex)
console.readkey();}}
如果在檔案**現漢字,那麼讀出來就是亂碼。為了解決這個問題,我們用如下**:
using system;
using system.collections.generic;
using system.text;
using system.io;
class program
sr.close();
}catch (ioexception ex)
console.readkey();}}
對以上**我作出以下解釋:
streamreader sr= new streamreader(afile, system.text.encoding.getencoding("gb2312"));
//如果有漢字,必需要填入第二個編碼引數,要不讀出來就是亂碼,如果全是英文,可以不要這個引數。
(strline = sr.readline())!=null
上式可以分解為如下:
1: strline=sr.readline();
就是按行讀資料,行之間用「\n」分割;strline=sr.readline(); 是乙個賦值表示式,這個表示式也有乙個結果,就是strline的值。
2: if(strline!=null) 則條件成立,當readline讀到null的時候給了strline,這時strline為null,就表示讀取完成了。
C 中StreamReader讀取中文出現亂碼
有時在用c 中streamreader讀取中文時出現亂碼 如 原因是自windows 2000之後的作業系統在檔案處理時預設編碼採用unicode 所以.net檔案的預設編碼也是unicode。除非另外指定,streamreader的預設編碼為unicode,而不是當前系統的ansi 頁。但是文件大...
c 用StreamReader對檔案讀取
型別 陣列反顯,處理 public void ontypearrayshowitem 讀取對應的天線型別檔案 opentext 建立乙個utf 8 編碼的streamreader物件 streamreader currenttypearraysr currenttypearrayfile.opent...
C 中StreamReader讀取中文出現亂碼
yhrun原文c 中streamreader讀取中文出現亂碼 原因是自windows 2000之後的作業系統在檔案處理時預設編碼採用unicode 所以.net檔案的預設編碼也是unicode。除非另外指定,streamreader的預設編碼為unicode,而不是當前系統的ansi 頁。但是文件大...