从 23GB 的文件中读取 2 个字节
Read 2 Bytes from 23GB file
在java中,有没有一种简单快捷的方法可以从一个23gb的大文件中读取两个字节?
问题是 read() 方法 (FileInputStream) 只支持 int 作为偏移量。在内存中读取大小为 2GB 的块需要很长时间......
必须有一种方法可以跳过比方说 15.000.000.000 字节?
使用 nio FileChannel position(long newPosition)
方法。要获取它,请在旧的 FileInputStream 实例上调用 getChannel()
。
使用FileChannel
and ByteBuffer
:
ByteBuffer bb = ByteBuffer.allocate(1);
FileChannel.open(file.toPath()).position(15e9).read(bb);
byte b = bb.get();
在java中,有没有一种简单快捷的方法可以从一个23gb的大文件中读取两个字节? 问题是 read() 方法 (FileInputStream) 只支持 int 作为偏移量。在内存中读取大小为 2GB 的块需要很长时间...... 必须有一种方法可以跳过比方说 15.000.000.000 字节?
使用 nio FileChannel position(long newPosition)
方法。要获取它,请在旧的 FileInputStream 实例上调用 getChannel()
。
使用FileChannel
and ByteBuffer
:
ByteBuffer bb = ByteBuffer.allocate(1);
FileChannel.open(file.toPath()).position(15e9).read(bb);
byte b = bb.get();