首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Scala/ MappedByteBuffer

Java Scala/ MappedByteBuffer
EN

Stack Overflow用户
提问于 2013-10-15 16:07:25
回答 1查看 685关注 0票数 0

我在Scala中使用MappedByteBuffer (尽管这个问题也与Java相关)来打开一个大约400MB的文件。下面是一个代码片段:

代码语言:javascript
复制
val file = new java.io.File( ... )
val stream = new java.io.FileInputStream( file )
val buffer = stream.getChannel.map(java.nio.channels.FileChannel.MapMode.READ_ONLY, 0, file.length )

但是,此操作将失败,并显示以下错误:

代码语言:javascript
复制
java.io.IOException: Channel not open for writing - cannot extend file to required size

据我所知,你应该能够映射一个高达2 2GB的文件。就我的JVM设置而言,我已经设置了-Xmx4G,所以我不明白为什么它无法打开该文件。作为测试,我映射了文件的较小部分(~1mb),它工作正常。

有谁有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-15 16:18:28

我误读了我在网上看到的示例,假设map的第三个参数是要停止读取的文件的字节,而实际上它是要读取的字节数。改变这一点可以解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19376141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档