今天遇到的問題是這樣:用java讀取一個中文文本文件,但讀取到的卻是亂碼,之前一直沒有問題,查清楚后,原來是因為今天是用的windows的記事本來編輯的文件,因編碼方式是的不同而導致了亂碼,解決方法就是設置編碼方式為“UTF-8”,設置方法如下:
File file = new File("文件路徑");
Reader reader = null;
try {
System.out.println("以字符為單位讀取文件內容,一次讀一個字節:");
// 設置編碼方式為UTF-8
reader = new InputStreamReader(new FileInputStream(file),"UTF-8");
int tempchar;
while ((tempchar = reader.read()) != -1) {
if (((char) tempchar) != '\r') {
// 對於windows下,\r\n這兩個字符在一起時,表示一個換行。
// 但如果這兩個字符分開顯示時,會換兩次行。
// 因此,屏蔽掉\r,或者屏蔽\n。否則,將會多出很多空行。
System.out.print((char) tempchar);
}
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
