如何解决fileinputstream中文乱码问题?一起了解一下吧!
Java中使用 FileInputStream 读取txt等文档时,中文会产生乱码,这是因为一个中文对应两个字节存储(负数),也就是说,读取对应中文的字节数应该是偶数; 而英文对应一个字节存储。FileInputStream每次读取一个数组长度的字节时,读取的中文字节数可能是奇数,也就是只读到中文的一半字节,出现乱码。
解决方法是:
try {
fis = new FileInputStream(file);
InputStreamReader reader = new InputStreamReader(fis,"GBK"); //最后的"GBK"根据文件属性而定,如果不行,改成"UTF-8"试试 BufferedReader br = new BufferedReader(reader); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); reader.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } }
关于解决fileinputstream中文乱码问题,我们就了解到这啦!