Java read txt file, Chinese characters garbled, because the encoding format of the file and the program code adopted a different encoding format. Usually, if you do not modify, the encoding format used by Windows itself is GBK (while GBK and gb2312 are basically the same encoding), the program generally uses utf-8, so it is best to specify the encoding method when reading the file
Mode 1: Read and write by Byte stream
ImportJava.io.BufferedReader;ImportJava.io.BufferedWriter;ImportJava.io.FileInputStream;ImportJava.io.FileOutputStream;Importjava.io.IOException;ImportJava.io.InputStreamReader;ImportJava.io.OutputStreamWriter;ImportJava.io.Writer;Importorg.apache.commons.lang3.StringUtils; Public classFileReadWriteDemo2 { Public Static voidMain (string[] args)throwsIOException {BufferedReader Read=NewBufferedReader (NewInputStreamReader (NewFileInputStream ("F:/test.txt"), "GBK")); Writer out=NewOutputStreamWriter (NewFileOutputStream ("F:/testnew.txt"), "GBK"); BufferedWriter writer=NewBufferedWriter (out); String filecontent=""; String Line= ""; while(line = Read.readline ())! =NULL) { //Remove Spaces if(Stringutils.isnotblank (line)) {//System.out.println (line);Filecontent +=line+ "\ r \ n"; Writer.write (line); Writer.write ("\ r \ n"); }} read.close (); Writer.close (); System.out.println (filecontent); }}
Mode 2: Read and write with character stream
Public classFilereadwritedemo { Public Static voidMain (string[] args)throwsIOException {BufferedReader Read=NewBufferedReader (NewFileReader ("F:\\test.txt")); BufferedWriter writer=NewBufferedWriter (NewFileWriter ("F:/testnew.txt")); String Line= ""; while(line = Read.readline ())! =NULL) { if(Stringutils.isnotblank (line)) {System.out.println (line); Writer.write (line); Writer.write ("\ n"); }} read.close (); Writer.close (); }}
Java IO Read Write file