我有一个大文件,我正在打开一个 FileInputStream。这个文件包含一些文件,每个文件都有一个从开始的偏移量和一个大小。此外,我有一个解析器应该评估这样一个包含的文件。
File file = ...; // the big file
long offset = 1734; // a contained file's offset
long size = 256; // a contained file's size
FileInputStream fis = new FileInputStream(file );
fis.skip(offset);
parse(fis, size);
public void parse(InputStream is, long size) {
// parse stream data and insure we don't read more than size bytes
is.close();
}
我觉得这不是一个好的做法。有没有更好的方法来做到这一点,也许使用缓冲?
此外,我觉得 skip() 方法会大大减慢阅读过程。