new string的问题
import java.io.*;
public class Insteam {
public static void main(String[] args) throws IOException {
byte buffer[]=new byte[2056];
try
{
FileInputStream i=new FileInputStream("d:\\hello.txt");
int num=i.read(buffer);
System.out.println(new String(buffer));
System.out.println(buffer);
}
catch(Exception e)
{
String err=e.toString();
System.out.println(err);
}
}
}
中的System.out.println(new String(buffer))和System.out.println(buffer)的输出不一样 求大神们给个解析
[解决办法]
直接打印buffer应该是这个byte数组的地址,原因是打印的时候默认为调用对象的toString方法。而表示数组的这个对象是继承了Object的,但是并未覆盖其toString方法,所以打印的时候会调用Object中的toString方法。你可以去看看Object中的toString方法和String中的toString方法就明白了
[解决办法]
这怎么可能一样呢。
new String(buffer)是构造了一个buffer字节数组代表的字符串
直接输出buffer是输出的buffer数组的首地址。
你new一个int数组,它也是不一样的啊。