在用java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码。是因为系统的编码和程序的编码采用了不同的编码格式。
解决方法:
采用java.io.fileinputstream/java.io.inputstreamreader和java.io.fileoutputstream/java.io.outputstreamwriter来解决这个问题。
实现代码:
//默认情况下,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(); } } } }
更多java知识请关注java基础教程栏目。
以上就是java文件写入乱码怎么办的详细内容。