首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

new string的有关问题

2013-01-11 
new string的问题import java.io.*public class Insteam {public static void main(String[] args) throw

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数组,它也是不一样的啊。

热点排行