byte[] b = new byte[1024];
//     设置要读取的字节位置
     int len1 = in.read(b);
//     System.out.println(file.readByte()+">>FilePointer>>"+file.getFilePointer());
//     int pointer = 0;
     while(len1!= -1){
     for (int i = 0;i < len1;i++)
     System.out.print(b[i]+","); 
从一个二进制文件读入1k的内容,然后输出。这个可以正常输出一些二进制数,
-32,-75,0,0,0,91,20,0,0,40,0,0,0,2,127,-16,56,-128,1,-45,4,99,6.....
但是如果我使用
    byte[] b = new byte[1024];
//     设置要读取的字节位置
     int len1 = in.read(b);
//     System.out.println(file.readByte()+">>FilePointer>>"+file.getFilePointer());
//     int pointer = 0;
     while(len1!= -1){
     System.out.print(b+","); 
整体输出,结果就是一串东东:
[B@de6ced,
[B@de6ced,
[B@de6ced,
[B@de6ced,
.....一直到结束~为什么这样呢?真搞不懂~~?

解决方案 »

  1.   

    楼主要搞清楚,数组是引用类型,数组名b本身保存的是数组的地址,你这样输出就是把数组的地址输出来了
    这和你直接输出一个对象(如果没有重写toString方法)是一样的
      

  2.   

    楼主把java的数组当c里的数组么,还当指针用啊……
     - -!
      

  3.   


    就算是当指针也不应该用while(len1!= -1)啊
      

  4.   

    不一樣的啊~?哈哈!!!我是昨天剛剛開始用java的,我真當他們是一樣的呢~謝謝你的提醒了。呵呵~!
      

  5.   

    我是需要好好學習java了,嘿嘿~!!謝謝您!
      

  6.   

    B@de6ced是类保存的内存地址。