java的缓冲流

java的缓冲流_第1张图片
一、字节缓冲流
字节缓冲流底层自带了长度为8192的缓冲区提高性能。
java的缓冲流_第2张图片
注意:缓冲流并不能直接关联文件并操作文件中的数据,它还是要关联基本流的(InputStream,OutputStream)。
例如,拷贝文件,一次操作一个字节:

public class MyApp {
    public static void main(String[] args) throws IOException {
        //创建缓冲流的对象
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("javase-learning\\src\\example\\org\\domain\\a.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("javase-learning\\src\\example\\org\\domain\\b.txt"));
         //循环读取并写到目的地
        int b;
        while((b = bis.read()) != -1){
            bos.write(b);
        }
        //释放资源
        bos.close();
        bis.close();
    }
}

再例如,拷贝文件,一次操作多个字节:

public class MyApp {
    public static void main(String[] args) throws IOException {
        //创建缓冲流的对象
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("javase-learning\\src\\example\\org\\domain\\a.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("javase-learning\\src\\example\\org\\domain\\b.txt"));
         //循环读取并写到目的地
        byte[] bytes = new byte[1024];
        int len;
        while((len = bis.read(bytes)) != -1){
            bos.write(bytes,0,len);
        }
        //释放资源
        bos.close();
        bis.close();
    }
}

二、字符缓冲流
构造方法:
java的缓冲流_第3张图片
字符缓冲流特有方法:
java的缓冲流_第4张图片
例如,使用字符缓冲输入流读取文件的一行数据:
java的缓冲流_第5张图片
注意:readline()方法在读取时一次读一整行,遇到回车换行结束。但是它不会把回车换行读到内存中。
再例如,使用字符缓冲输出流:
java的缓冲流_第6张图片
java的缓冲流_第7张图片

你可能感兴趣的:(java,开发语言)