从 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();