weixin_41836027
2019-02-20 14:24
采纳率: 100%
浏览 4.1k
已采纳

为什么要用byte b[]=new byte[1024];?如果我的文件大于1KB,不是发生溢出了吗?

// 创建FileInputStream类对象
FileInputStream in = new FileInputStream(file);
byte byt[] = new byte[1024]; // 创建byte数组
int len = in.read(byt); // 从文件中读取信息
// 将文件中信息输出
System.out.println("文件中的信息是:" + new String(byt, 0, len));
in.close(); // 关闭流
} catch (Exception e) {
e.printStackTrace(); // 输出异常信息
}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 强化脑细胞 2019-02-20 14:33
    已采纳

    in.read(byt); 此处应该用while,循环读吧

    已采纳该答案
    打赏 评论
  • viewgroup 2019-02-20 15:05

    你这样只能读取文件的1024字节长度的信息,,如果不用循环,你要这样定义数组byte byt[] = new byte[in.available()]; // 创建byte数组。。一般推荐循环来读取

    打赏 评论
  • lonbo_J 2019-02-20 15:16

    byte数组相当于缓存,要循环去进行读写的

    打赏 评论
  • 小明同学ym 2020-12-10 01:58

    为什么一张图片,循环写进数组的方法生成16进制字符串,再返回成图片文件打开就报文件损坏错误,但是用byte byt[] = new byte[in.available()]; 这个方法生成的16进制字符串再解析成图片就和原来一摸一样?

    打赏 评论

相关推荐 更多相似问题