代码之家  ›  专栏  ›  技术社区  ›  Dan Polites

FileUtils.read FileToByteArray抛出java.lang.OutOfMemory错误:java堆空间错误

  •  0
  • Dan Polites  · 技术社区  · 16 年前

    attachment.setData(FileUtils.readFileToByteArray(attachmentFile));
    
    1 回复  |  直到 16 年前
        1
  •  3
  •   Dan Polites    16 年前

    下面的代码示例解决了我的问题。不过,我不确定为什么,因为我将缓冲区长度设置为文件的长度,所以我看不出这与readFileToByteArray有什么不同。我可以查看是否将缓冲区长度设置为小于文件的值。

    FileInputStream fis = new FileInputStream(attachmentFile);
    BufferedInputStream bis = new BufferedInputStream(fis);
    byte[] buffer = new byte[(int)attachmentFile.length()];
    
    bis.read(buffer);
    
    fis.close();
    
    推荐文章