为了账号安全,请及时绑定邮箱和手机立即绑定

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

 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 回答

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

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

0 回复 有任何疑惑可以回复我~
#1

慕妹6361977 提问者

我明白了,非常感谢!
2017-04-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信