解决 Java 中使用字节流读取中文乱码问题,首先应明确文件的编码类型。若已知编码,直接在生成字符串时指定该编码可避免乱码。例如,使用 FileInputStream 读取文件时,最终转字符串时指定正确编码。若编码未知,可借助库如 cpdetector 来猜测文件编码。在 cpdetector 的 Maven 依赖引入后,通过特定方法获取编...
读取文件的时候如果是用的read方法(字节流),碰到中文输出就是乱码,然后存储的时候设置下编码为GBK或者是UTF-8形式即可,可以有效的解决乱码问题。可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。BufferedReader bre = null;try { String file = "D:/test/test.txt...
当使用read方法(字节流)读取文件时,如果文件的编码与读取时指定的编码不一致,就会导致乱码。确保在读取和写入文件时指定正确的编码格式,如UTF-8或GBK。修改文件编码:如果文件已经出现了乱码,可以尝试将文件内容复制到记事本中,然后修改记事本的后缀为.java,重新编译运行。这种方法有时可以解决因编码...
while(is.read()!=-1){ b[i]=(byte) is.read(); i++;}这里是错的,当判断is.read() != -1的时候这个字节就已经被读取了,于是b[i] = (byte) is.read();这里读取的就是后面一个字节,自然会乱码。解决方法如下:byte c = (byte)is.read();while(c != -1){ b[i...
读取文件的时候如果是用的read方法(字节流),碰到中文输出就是乱码,然后存储的时候设置下编码为GBK或者是UTF-8形式即可,可以有效的解决乱码问题。把txt文件重新另存为时选择编码为与编辑器IED的编码一致,比如我IntellijIDEA的编辑器右下角显示为utf-8,然后把要读取的txt文件另存为的时候编码选项选择...