小弟用如下代码在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();
  }
}

解决方案 »

  1.   

    字符集的问题,把字符集改为你操作系统默认字符集,然后把循环的区间调整为GBK的区间试验下,
    比如i>20000 && i<21000
      

  2.   

    程序没有问题.
    unicode 50000~60000这间的字符,在windows自己的字符集中没有定义.
    你可以改为:for(int i=20000;i<=40000;i++),来看看结果.
      

  3.   

    应该是你安装的是中文的windows,字符集不全,改成for(int i=0; i <=60000;i++),来试试。
      

  4.   

    那看看,其他编码行不行啊 gbk
      

  5.   

    是乱码是正常的。
    jdk文档里面写的很清楚:
    /**
         * Write a single character.
         *
         * @exception  IOException  If an I/O error occurs
         */
        public void write(int c)
    这里的参数是字符,可能你的本意是想把数字写到文件里面去,但是参数却是代表着
    unicode字符。
    初学者建议多看到api,了解参数的意义。
      

  6.   

    out.write(i);
    这行改成
    out.write(""+i);