When using Java programs to read and write txt files containing Chinese, it often happens that the content read or written is garbled. This is because the system coding and program coding use different coding formats.
Solution:
Use java.io.FileInputStream/java.io.InputStreamReader and java.io.FileOutputStream/java.io.OutputStreamWriter to solve this problem.
Implementation code:
//默认情况下,win系统编码是gbk/gbk2312,读取和写入时加入编码字符集可以解决乱码 public class ReadAndWrite { private static void test(){ File firstFile = new File("D://fileone.txt"); File secondFile=new File("D://filesecond.txt"); BufferedReader in = null; BufferedWriter out = null; try { //加入编码字符集 in = new BufferedReader(new InputStreamReader(new FileInputStream(firstFile), "gbk")); //加入编码字符集 out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(secondFile), "gbk")); String line = ""; while((line = in.readLine())!=null){ System.out.println(line); out.write(line+"\r\n"); } } catch (FileNotFoundException e) { System.out.println("file is not fond"); } catch (IOException e) { System.out.println("Read or write Exceptioned"); }finally{ if(null!=in){ try { in.close(); } catch (IOException e) { e.printStackTrace(); }} if(null!=out){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } }
For more java knowledge, please pay attention to the java basic tutorial column on the PHP Chinese website.
The above is the detailed content of What to do if java files are written with garbled characters. For more information, please follow other related articles on the PHP Chinese website!