如题。不论是输出到控制台还是输出到文件里,都是这个样子

解决方案 »

  1.   

    InputStream.write(Byte.toString(xx))
    这样才能打出数字来
      

  2.   

    用BufferedWriter套一下子,然后就可以是个数字了
      

  3.   

    to jshi123:
      为什么write要设计成这样呢?如果同时要输出字符和数字,岂非很不方便
      

  4.   

    OutputStream.write(byte) 只是负责把一个字节从内存中复制到文件、或控制台。
    对于write(byte)方法来说,它所知道的就是一个“字节”(8个bit),即不是字符、也不是数字。在显示的时候,notepad,cmd这些应用程序会把数据显示到屏幕上。
    一般情况下,它们的做法是把一个字节就当成一个ASCII字符,所以你会看到“字符”。类库中提供了很多方便的方法直接输出字符串,如ObjectOutputStream.writeChars
    每个方法各自有自己的用途和应用场合罢了。(顺便说InputStream没有write方法,OutputStream才有)
      

  5.   

    当然也不会,如果用DataOutputStream.writeInt(int)写一个整数,你看到的是8个字符的一串乱码,因为显示时,它们的每个字节还是被当作了一个字符。看来楼主还没有彻底理解,多看些资料,加油啊。
      

  6.   

    那照楼上的意思,写入整数是乱码,DataOutputStream还有什么意义?不会是只供DataInputStream来读取吧
      

  7.   

    可以用对应的DataInputStream.readInt()读回来
      

  8.   

    我刚才试了一下,DataOutputStream输出的整数照样是对应的字符,并不是jshi123所说的乱码,jshi123怎么乱说呢?