Java中的I/O缓冲流

目录

什么是缓冲流

字节缓冲输出流BufferedOutputStream

字节缓冲输入流BufferedInputStream

字符缓存输出流BufferedWriter

字符缓存输入流BufferedReader


 

什么是缓冲流

 

缓冲流也叫高效流,是对4个基本File流的增强。缓冲流在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写效率。

  • 字节缓冲流     BufferedInputStream         BufferedOutputStream
  • 字符缓冲流     BufferedReader                 BufferedWriter

Java中的I/O缓冲流_第1张图片

 

 

字节缓冲输出流BufferedOutputStream

 

java.io.BufferedOutputStream extends OutputStream 

 

字节缓冲输出流的构造方法

BufferedOutputStream(OutputStream out) //创建一个新的缓冲输出流,以将数据写入指定的底层输出流

BufferedOutputStream(OutputStream out, int size) //创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流

 

使用步骤

1.创建FileOutputStream对象,构造方法中绑定要输出的目的地

2.创建BufferedOutputStream对象,构造方法中传递FileOutputStream对象,提高FileOutputStream对象效率

3.使用BufferedOutputStream对象中的方法write,把数据写入到内部缓冲区中

4.使用BufferedOutputStream对象中的方法flush,把内部缓冲区中的数据刷新到文件中

5.释放资源(会先调用flush方法刷新数据,第四步可以省略)

    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("10\\a.txt");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        bos.write("我把数据写入到内部缓冲区中".getBytes());
//        bos.flush();
        bos.close();
    }

 

 

字节缓冲输入流BufferedInputStream

 

java.io.BufferedInputStream extends InputStream

 

构造方法

BufferedInputStream(InputStream in)  //创建一个BufferedInputStream并保存其参数,即输入流in
BufferedInputStream(InputStrem in, int size)   //创建具有指定缓冲区大小的BufferedInputStream并保存其参数,即输入流

 

使用步骤

1.创建FileInputStream对象,构造方法中绑定要读取的数据源

2.创建BufferedInputStream对象,构造方法中要传递FileInputStream对象,提高FileInputStream对象的读取效率

3.使用BufferedInputStream对象中的方法read读取文件

4.释放资源

    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("10\\a.txt");
        BufferedInputStream bis = new BufferedInputStream(fis);
        byte[] bytes = new byte[1024];
        int len = 0;
        while ((len = bis.read(bytes))!=-1){
            System.out.println(new String(bytes, 0, len));
        }

        bis.close();
    }

 

 

字符缓存输出流BufferedWriter

 

java.io.BufferedWriter extends Writer 

 

构造方法

BufferedWriter(Writer out) //创建一个使用默认大小输出缓冲区的缓冲字符输出流
BufferedWriter(Writer out, int sz)  //创建一个使用给定大小的输出缓冲区的新缓冲字符输入流

 

使用步骤

1.创建字符缓冲输出流对象,构造方法中传递字符输出流

2.调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中

3.调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据刷新到文件中

4.释放资源

    public static void main(String[] args) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter("10//a.txt"));
        for (int i = 0; i<10; i++) {
            bw.write("monkey");
            bw.newLine();  //换行
        }
        bw.flush();
        bw.close();
    }

 

 

字符缓存输入流BufferedReader

 

java.io.BufferedReader extends Reader

 

构造方法

BufferedReader(Reader in)   //创建一个默认大小的输入缓冲区的缓冲字符输入流
BufferedReader(Reader in, int sz)   //创建一个使用指定大小输入缓冲区的缓冲字符输入流

 

使用步骤

1.创建字符缓冲输入流对象,构造方法中传递字符输入流

2.使用字符缓冲输入流对象中的方法read/readline读取文本

3.释放资源

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("10//a.txt"));
        String line;
        while((line = br.readLine())!=null){
            System.out.println(line);
        }
        
        br.close();
    }

 

 

 

你可能感兴趣的:([JavaEE])