高效缓冲流

HeJin小于 1 分钟JavaIO流

对硬盘进行数据的读取相比于从内存中存取数据要慢的多。所以为JDK为我们提供了高效缓冲流来提高我们IO流的效率。内部原理就是借助内存的缓冲区来减少硬盘IO的次数,提高性能。

分类

  • 字节流
    • 输入流:BufferedInputStream
    • 输出流:BufferedOutputStream
  • 字符流
    • 输入流:BufferedReader
    • 输出流:BufferedWriter

对象创建

public BufferedInputStream(InputStream in)
    
public BufferedOutputStream(OutputStream out)
    
public BufferedReader(Reader in)
    
public BufferedWriter(Writer out)    

使用

public static void main(String[] args) throws IOException {
    FileInputStream inputStream = new FileInputStream("E:\\软件\\jetbeans\\ideaIU-2021.2.3.exe");
    FileOutputStream outputStream = new FileOutputStream("e:\\ideaIU-2021.2.3.exe");
    BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
    BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);

    byte[] chars = new byte[1024 * 1024 * 10];
    int len;
    while ((len = bufferedInputStream.read(chars)) != -1){
        bufferedOutputStream.write(chars, 0, len);
        // 刷新缓冲区数据到文件
        bufferedOutputStream.flush();
    }

    inputStream.close();
    outputStream.close();
    bufferedInputStream.close();
    bufferedOutputStream.close();
}

特有的方法

方法作用
BufferedReaderpublic String readLine(boolean ignoreLF) throws IOException一次读取一行数据
BufferedWriterpublic void newLine() throws IOException写入一个换行符,会根据系统变化