IO java中的Skip()方法?

时间:2015-09-29 08:54:49

标签: java io fileinputstream skip

我知道skip(long) FileInputStream方法从文件的起始位置跳过字节并放置文件指针。但是如果我们想在文件中间只跳过20个字符,并且要读取文件的剩余部分,我们该怎么办?

2 个答案:

答案 0 :(得分:7)

您应该使用BufferedReader。它的skip方法会跳过字符而不是字节。

要跳过现有20中的FileInputStream个字符:

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

答案 1 :(得分:2)

Mantain一个柜台。

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

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,具体取决于您正在阅读的文件类型,如果是二进制或文本文件)。