小弟用如下代码在123.txt文件中输出内容,却都是乱码。。是什么原因啊 请大虾帮助public static void ReadData()
{
try {
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("E:/123.txt"),"UTF-8");
for(int i=50000;i<=60000;i++){
out.write(i);
out.write("\r\n");
out.flush();
}
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
比如i>20000 && i<21000
unicode 50000~60000这间的字符,在windows自己的字符集中没有定义.
你可以改为:for(int i=20000;i<=40000;i++),来看看结果.
jdk文档里面写的很清楚:
/**
* Write a single character.
*
* @exception IOException If an I/O error occurs
*/
public void write(int c)
这里的参数是字符,可能你的本意是想把数字写到文件里面去,但是参数却是代表着
unicode字符。
初学者建议多看到api,了解参数的意义。
这行改成
out.write(""+i);