IO java 中的 Skip() 方法?

Skip() method in IO java?

我知道 FileInputStreamskip(long) 方法从文件的起始位置跳过字节并放置文件指针。但是如果我们只想跳过文件中间的20个字符,而将文件的剩余部分作为读取,我们应该怎么做呢?

您应该使用 BufferedReader. Its skip 方法跳过字符而不是字节。

从现有 FileInputStream 中跳过 20 个字符:

BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream));
// read what you want here
reader.skip(20);
// read the rest of the file after skipping

维护一个计数器。

循环所有字符,增加每次读取的计数器。当达到要跳过的字符开头对应的计数器限制时,跳过需要跳过的字符。

int counter = 0;
while (counter < START_SKIP) {
    int x = input.read();
    // Do something
}
input.skip(NUM_CHARS_TO_SKIP);
...
// Continue reading the remainings chars

如有必要,请使用 BufferedReader 来提高性能,如 Tunaki 所说(或 BufferedInputStream 取决于您正在阅读的文件类型,如果是二进制文件或文本文件)。