今天遇到的问题是这样:用java读取一个中文文本文件,但读取到的却是乱码,之前一直没有问题,查清楚后,原来是因为今天是用的windows的记事本来编辑的文件,因编码方式是的不同而导致了乱码,解决方法就是设置编码方式为“UTF-8”,设置方法如下:
1File file = new File("文件路径"); 2 Reader reader = null; 3 try { 4 System.out.println("以字符为单位读取文件内容,一次读一个字节:"); 5 // 设置编码方式为UTF-8 6 reader = new InputStreamReader(new FileInputStream(file),"UTF-8"); 7 8 9 int tempchar; 10 while ((tempchar = reader.read()) != -1) { 11 12 if (((char) tempchar) != '\r') {
// 对于windows下,\r\n这两个字符在一起时,表示一个换行。
// 但如果这两个字符分开显示时,会换两次行。
// 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
1System.out.print((char) tempchar); 2 } 3 } 4 reader.close(); 5 } catch (Exception e) { 6 e.printStackTrace(); 7 }