下面是一个老大讲解(readLimit)使用,但是我更改(readLimit)的参数为1,然后往后读了很多个字节,再reset(),仍然能回到()的地方,不是说超过readLimit个字节()就失效了吗???
有没有人做过实验,确实让读取的字节数超过readLimit而让失效??
附上那个老大的讲解:
就像书签一样,在这个BufferedReader对应的buffer里作个标记,以后再调用reset时就可以再回到这个过的地方。
方法有个参数,通过这个整型参数,你告诉系统,希望在读出这么多个字符之前,这个保持有效。读过这么多字符之后,系统可以使不再有效,而你不能觉得奇怪或怪罪它。这跟buffer有关,如果你需要很长的距离,那么系统就必须分配很大的buffer来保持你的。
这个方法可以这么用吧,我想。读的时候,你读出了若干字符,做了某些判断或处理,发现还是从头来过比较好,也就是退回到原来的位置,再读一遍。
//reader is a BufferedReader
reader.(50);//要求在50个字符之内,这个应该保持有效,系统会保证buffer至少可以存储50个字符
int a = reader.read();//读了一个字符
int b = reader.read();//又读了一个字符
//做了某些处理,发现需要再读一次
reader.reset();
reader.read();//读到的字符和a相同
reader.read();//读到的字符和b相同
有没有人做过实验,确实让读取的字节数超过readLimit而让失效??
附上那个老大的讲解:
就像书签一样,在这个BufferedReader对应的buffer里作个标记,以后再调用reset时就可以再回到这个过的地方。
方法有个参数,通过这个整型参数,你告诉系统,希望在读出这么多个字符之前,这个保持有效。读过这么多字符之后,系统可以使不再有效,而你不能觉得奇怪或怪罪它。这跟buffer有关,如果你需要很长的距离,那么系统就必须分配很大的buffer来保持你的。
这个方法可以这么用吧,我想。读的时候,你读出了若干字符,做了某些判断或处理,发现还是从头来过比较好,也就是退回到原来的位置,再读一遍。
//reader is a BufferedReader
reader.(50);//要求在50个字符之内,这个应该保持有效,系统会保证buffer至少可以存储50个字符
int a = reader.read();//读了一个字符
int b = reader.read();//又读了一个字符
//做了某些处理,发现需要再读一次
reader.reset();
reader.read();//读到的字符和a相同
reader.read();//读到的字符和b相同
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货