下面的程序如果我输入12345,结果却不是12345,而是乱码,请问这是怎么回事?如何解决?import java.io.*;
public class IOTest
{
public static void main(String []args)
{
try{
byte barray[]=new byte[128];
System.out.println("Enter something:");
System.in.read(barray);
System.out.println("You entered:");
System.out.println(barray);
}catch(IOException e)
{
System.out.println(e.toString());
}
}
}

解决方案 »

  1.   

    唉,找到原因了,System.out.println(barray);输出的是数组的地址。
      

  2.   

    System.out.println(这里不能为byte[]);
    public static final PrintStream out;PrintStream.println(), 
    PrintStream.println(boolean), 
    PrintStream.println(char), 
    PrintStream.println(char[]), 
    PrintStream.println(double), 
    PrintStream.println(float), 
    PrintStream.println(int), 
    PrintStream.println(long), 
    PrintStream.println(java.lang.Object), 
    PrintStream.println(java.lang.String)
      

  3.   

    呵呵,应该是数组的tostring函数.
      

  4.   

    @后面的数字是该数组对象的hashcode,至于hashcode是不是用地址实现的,就不知道了.
      

  5.   

    System.out.println(new String(barray));另外,注意从控制台上输入的是字符char, 占2个byte. 如果直接把数组中的字节输出肯定是乱码。