lingdongfeixue 2017-04-10 12:12 采纳率: 0%
浏览 2229
已结题

使用java nio 将超过2G文件映射到内存中,报异常

代码如下:
MappedByteBuffer buffer = FileChannel.map(FileChannel.MapMode.READ_ONLY, 0, Integer.MAX_VALUE);//int java.lang.Integer.MAX_VALUE = 2147483647 [0x7fffffff]

环境:jdk7 64位 操作系统系统win7 64位

异常信息
Exception in thread "main" java.io.IOException: Map failed
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:888)
at com.bigfile.read.MappedBiggerFileReader.(MappedBiggerFileReader.java:36)
at com.bigfile.read.MappedBiggerFileReader.main(MappedBiggerFileReader.java:83)
Caused by: java.lang.OutOfMemoryError: Map failed
at sun.nio.ch.FileChannelImpl.map0(Native Method)
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:885)
... 2 more

  • 写回答

3条回答

  • oyljerry 2017-04-10 12:36
    关注

    out of memory了,内存不够,map失败

    评论

报告相同问题?