代码如下
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream("demo/nihao.dat"),"utf-8"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("demo/nihao2.dat"),"utf-8"));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
bw.write(line);
bw.newLine();
bw.flush();
}
br.close();
bw.close();
}
这样在终端打出来的是对的,但是写出来的文件nihao2.dat里面中文是乱码。
....发错东西。。。
class test { System.out.print(); }
你先看下你的文件是不是以UTF-8的格式保存的,如果不是,改变一下,如果改变了之后,下一次运行之后,还出现同样的问题,那么就看你项目是否是utf-8的,因为默认创建的文件,以项目的编码格式是一样的!
终端是在JVM虚拟机的运行时环境运行的,可以自动识别,但是写到文件里的内容,编码是根据及机器规定的编码机制来读取文件的,打开文件要使用特定的编码机制打开方式,否则乱码。