IO java中的Skip()方法?

IO java中的Skip()方法?,java,io,fileinputstream,skip,Java,Io,Fileinputstream,Skip,我知道skip(long)方法FileInputStream从文件的起始位置跳过字节并放置文件指针。但是,如果我们只想跳过文件中间的20个字符,而要读取的文件的剩余部分,我们应该做什么?,您应该使用。它的方法跳过字符而不是字节 要从现有的文件输入流中跳过20个字符,请执行以下操作: BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream)); // read what you want he

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

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

要从现有的
文件输入流中跳过
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
int计数器=0;
while(计数器

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

@QuanNguyen-作为一条经验法则,请记住,流处理字节,读写器处理字符。请记住,如果字符位于当前文件位置之外,则即使是
BufferedReader.skip()
也不一定能完全满足您的需要。
skip
从当前文件位置起作用。对于文本,请使用读取器(InputStreamReader将二进制字节连接到Unicode java文本)。对于缓冲,请使用缓冲~版本。