我知道skip(long)
FileInputStream
方法从文件的起始位置跳过字节并放置文件指针。但是如果我们想在文件中间只跳过20个字符,并且要读取文件的剩余部分,我们该怎么办?
答案 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
,具体取决于您正在阅读的文件类型,如果是二进制或文本文件)。