BufferStream1

来源:互联网 发布:数据库模型分为哪三种 编辑:程序博客网 时间:2024/06/05 19:42
package ioexample;


import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;


public class TestBufferStream1 {
    public static void main(String[] args) {
    try {
        FileInputStream fis=new FileInputStream("F:\\test\\io\\TestBufferStream1.txt");
        BufferedInputStream bis= new BufferedInputStream(fis);
        int c=0;
        for(int j=0;j<1000;j++){
        System.out.println(bis.read());
        }
        //标记到第10
        //mark就像书签一样,在这个BufferedReader对应的buffer里作个标记,
        //以后再调用reset时就可以再回到这个mark过的地方。mark方法有个参数,通过这个整型参数,
        //你告诉系统,希望在读出这么多个字符之前,这个mark保持有效。读过这么多字符之后,系统可以使mark不再有效,
        //而你不能觉得奇怪或怪罪它。这跟buffer有关,如果你需要很长的距离,那么系统就必须分配很大的buffer来保持你的mark。
        //你读的内容并没有超过默认缓存的长度,就是说系统并没有使你设的mark失效,所以输出的内容都一样,
        //你试试读出很大量的数据再reset,那时的内容就可能不一样啦
        bis.mark(100);
        for(int i=0;i<=5&(c=bis.read())!=-1;i++){
            System.out.println((char)c);
        }
       System.out.println("---------------------");
       bis.reset();
       for(int i=0;i<=5&(c=bis.read())!=-1;i++){
           System.out.println((char)c);
       }
    }
    catch (FileNotFoundException e) {
        System.out.println("找不到指定文件");
        System.exit(-1);
    }
    catch (IOException e) {
        e.printStackTrace();
    }
}


}
原创粉丝点击