Java中从txt文件中读取和存储内容出现乱码的解决方法

时间:2021-01-23 06:32:01

转载自Java中从txt文件中读取和存储内容出现乱码的解决之道一:

原因:Java中对文本的操作经常会出现乱码,这是由于你要读取的文本中的内容编码和你IO操作使用的编码格式不一致导致的:

解决方法:

(1)  要统一编码,java工程的编码,txt文本编码,java工程中的java文本编码都统一为utf-8;
(2)  利用IO文件流的 InputStreamReader()和OutputStreamWriter()这两个函数对文件进行读取和存储操作。

具体代码如下:

[java] view plain copy print?
  1. //通过BufferedReader和BufferedWriter带有缓存的输入输出流对文件进行读写操作  
  2. //InputStreamReader()和OutputStreamWriter()这两个函数可以将字节流转换成字符流  
  3.   
  4. // 存储操作:  
  5. BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileUrl), "UTF-8"));   
  6. bw.write("内容");//将内容写到fileUrl中   
  7. bw.close();  
  8. // 或者  
  9. OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(fileUrl), "UTF-8");     
  10. osw.write("内容"); //将内容写到fileUrl中    
  11. osw.flush(); //将内容刷新到文件中存储  
  12. osw.close();  
  13.   
  14. //读取操作:  
  15. BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(fileUrl),"UTF-8"));  
  16. String s=null;  
  17. while((s=br.readLine())!=null)  
  18. {  
  19.     System.out.println(s);    
  20. }  
  21. br.close();  

建议在存储时设置对应的字符编码格式(最好使用utf-8的编码格式),然后就可以以设置的编码格式读取文本 。