现象:
在Java程序中读写包含中文的txt文件时,所读写的内容会变成乱码。
理由:
乱码的原因是操作系统和Java程序使用的编码格式不同。 中文Windows OS操作系统缺省使用GBK编码,Eclipse IDE中的Encode缺省使用UTF-8编码。 在操作系统上手动创建和写入的txt文件使用GBK编码,在Java程序直接读取时使用UTF-8编码,因此会出现乱码。 为了避免可能的中文乱码,建议在读写文件时明确指定编码格式。
解决方法:
在读写文件时明确指定编码格式。
获取读取文件的字符流:
inputstreamreaderisr=newinputstreamreader (new file inputstream ),' UTF-8 ' );
bufferedreaderbr=newbufferedreader (ISR; 要获取写入文件的字符流,请执行以下操作:
outputstreamwriterosw=newoutputstreamwriter (new file output stream (file ),' UTF-8 ' );
bufferedwriterbw=newbufferedwriter (OSW;