Problem: When using Java programs to read and write txt files containing Chinese characters, the content read or written often appears to be garbled. The reason is actually very simple, that is, the system encoding and program encoding use different encoding formats. Usually, if you don't modify it yourself, the encoding format used by Windows itself is gbk (and gbk and gb2312 are basically the same encoding method), and if the Encode in the IDE is not modified, the default encoding is utf-8, which is why The reason for garbled characters. When a txt file (gbk) created and written manually under the OS is read directly by a program (utf-8), the text will be garbled. In order to avoid possible Chinese garbled problems, it is best to explicitly specify the encoding format when writing and reading files.
1. Write file:
public static void writeFile(String fileName, String fileContent) { try { File f = new File(fileName); if (!f.exists()) { f.createNewFile(); } OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"gbk"); BufferedWriter writer=new BufferedWriter(write); writer.write(fileContent); writer.close(); } catch (Exception e) { e.printStackTrace(); } }
2. Read file:
public static String readFile(String fileName) { String fileContent = ""; try { File f = new File(fileName); if(f.isFile()&&f.exists()) { InputStreamReader read = new InputStreamReader(new FileInputStream(f),"gbk"); BufferedReader reader=new BufferedReader(read); String line; while ((line = reader.readLine()) != null) { fileContent += line; } read.close(); } } catch (Exception e) { e.printStackTrace(); } return fileContent; }
More Java reads and writes txt files Please pay attention to the PHP Chinese website for related articles on methods to prevent the problem of Chinese garbled characters!