我用printByByteArray方法,字节数组不足够大怎么也是读取整个文件?

来源:4-2 字节流之文件输入流FileInputStream-2

慕妹6361977

2017-04-16 17:35

 public static void printByByteArray(String fileName)throws IOException{
  FileInputStream in=new FileInputStream(fileName);
  byte[] buf=new byte[10];
//  int b=in.read(buf, 0, buf.length);
//  int i=1;
//  for(int j=0;j<b;j++){
//   if(buf[j]<=0xf){
//    System.out.print("0");
//   }
//   System.out.print(Integer.toHexString(buf[j])+"  ");
//   if(i++%10==0){
//    System.out.println();
//   }
//  }
//  in.close();
  int b=0;
  int i=1;
  while((b=in.read(buf, 0, buf.length))!=-1){
   for(int j=0;j<b;j++){
    if((buf[j] & 0xff)<=0xf){
     System.out.print("0");
    }
    System.out.print(Integer.toHexString(buf[j] & 0xff)+"  ");
    if(i++%10==0){
     System.out.println();
    }
   }
  }
  in.close();
 }

写回答 关注

1回答

  • 海风3
    2017-04-16 20:36:51
    已采纳

    一直循环着读,比如你写的byte为10,while循环读取输出一次,返回不是-1再次进入循环,知道in.read(buf, 0, buf.length)这个方法读到文件最后,这个方法返回-1,循环结束。

    这种模式不是一直读最后输出,而是读一点,然后输出,在读一点

    慕妹6361...

    我明白了,非常感谢!

    2017-04-16 22:03:18

    共 1 条回复 >

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题