java – 使用Bytebuffers和NIO时如何避免OutOfMemoryError?

我正在使用ByteBuffers和FileChannels将二进制数据写入文件.当为大文件或连续为多个文件执行此操作时,我得到OutOfMemoryError异常.
我在其他地方读过,使用带有NIO的Bytebuffers会被破坏,应该避免.你们中是否有人遇到过这种问题,并找到了一个有效地在java文件中保存大量二进制数据的解决方案?

是jvm选项-XX:MaxDirectMemorySize的方法吗?

解决方法:

我想说不要创建一个包含所有数据的巨大ByteBuffer.创建一个小得多的ByteBuffer,用数据填充它,然后将这些数据写入FileChannel.然后重置ByteBuffer并继续,直到写入所有数据.

上一篇:NIO 聊天室代码实现


下一篇:解决IDEA右侧maven不显示方法