您的位置:首页 > 其它

InputStream的mark和reset

2017-04-26 17:52 155 查看
mark就像书签一样,在这个BufferedReader对应的buffer里作个标记,以后再调用reset时就可以再回到这个mark过的地方。mark方法有个参数,通过这个整型参数,你告诉系统,希望在读出这么多个字符之前,这个mark保持有效。读过这么多字符之后,系统可以使mark不再有效,而你不能觉得奇怪或怪罪它。这跟buffer有关,如果你需要很长的距离,那么系统就必须分配很大的buffer来保持你的mark。     

    //eg.     

    //reader       is       a       BufferedReader     

      

    reader.mark(50);//要求在50个字符之内,这个mark应该保持有效,系统会保证buffer至少可以存储50个字符     

    int       a       =       reader.read();//读了一个字符     

    int       b       =       reader.read();//又读了一个字符     

      

    //做了某些处理,发现需要再读一次     

    reader.reset();     

    reader.read();//读到的字符和a相同     

    reader.read();//读到的字符和b相同
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: