import java.io.*;class Test
{    public static void main(String[] args) throws Exception
    { File file = new File("temp.txt"); FileOutputStream stream = new FileOutputStream(file); DataOutputStream filter = new DataOutputStream(stream);

for (int i = 0; i < 10; i++)
    filter.writeInt(i);
    }}请问为什么输出是乱码呢?

解决方案 »

  1.   

    你是要输出数字吗?
    把filter.writeInt(i);改成filter.writeInt(i+48);
      

  2.   

    或者不用数据输出流也可以,以供参考.
    import java.io.*;public class test{
        public static void main(String[] args) throws Exception{
            File file = new File("temp.txt");
            FileOutputStream stream = new FileOutputStream(file);
            for(int i = 0; i < 10; i++){
                String s = i+"";
                stream.write(s.getBytes());
            }
        }
    }
      

  3.   

    编码的问题..要制定为GBK,java默认的unicode编码容易出现乱码和方框之类的..
      

  4.   

    DataOutputStream是写成二进制的,你用UltraEdit等工具的十六进制模式可以看到写入文件中的数字。io包中的各种OutputStream都有不同的目的。