java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java的字节字符缓冲流

Java的字节缓冲流与字符缓冲流解析

作者:追光而遇

这篇文章主要介绍了Java的字节缓冲流与字符缓冲流解析,Java 缓冲流是Java I/O库中的一种流,用于提高读写数据的效率,它通过在内存中创建缓冲区来减少与底层设备的直接交互次数,从而减少了I/O操作的开销,需要的朋友可以参考下

高级流

在这里插入图片描述

缓冲流

基本流的效率太慢了,都加上缓冲区

在这里插入图片描述

 字节缓冲流

原理:底层自带了长度为8192的缓冲区提高性能

方法名称说明
public BufferedInputStream(InputStream is)把基本流包装成高级流,提高读取数据的性能
public BufferedOutputStream(OutputStream os)把基本流包装成高级流,提高读取数据的性能

练习:拷贝文件

public class BufferedStreamDemo1 {
    public static void main(String[] args) throws IOException {

        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("/Users/jessy/Desktop/offer50/aaa/aaa.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/Users/jessy/Desktop/offer50/aaa/aaacopy.txt"));

        int b;
        while ((b = bis.read()) != -1) {
            bos.write(b);
        }
        
        bos.close();
        bis.close();
    }
}
public class BufferedStreamDemo2 {
    public static void main(String[] args) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("/Users/jessy/Desktop/offer50/aaa/aaa.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/Users/jessy/Desktop/offer50/aaa/aaacopy.txt"));

        byte[] bytes = new byte[1024];
        int len;
        while ((len = bis.read(bytes)) != -1) {
            bos.write(bytes, 0, len);
        }

        bos.close();
        bis.close();
    }
}

字节缓冲流提高效率的原理

在这里插入图片描述

字符缓冲流

原理:底层自带了长度为8192的缓冲区提高性能

方法名称说明
public BufferedReader(Reader r)把基本流变成高级流
public BufferedWriter(Writer r)把基本流变成高级流
字符缓冲输入流特有方法说明
public String readLine()读取一行数据,如果没有数据可读了,会返回null
字符缓冲输出流特有方法说明
public void newLine()跨平台的换行 
public class BufferedStreamDemo3 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("/Users/jessy/Desktop/offer50/aaa/aaa.txt"));

        String line;
        while (((line = br.readLine()) != null)) {
            System.out.println(line);
        }

        br.close();
    }
}
public class BufferedStreamDemo4 {
    public static void main(String[] args) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/jessy/Desktop/offer50/aaa/b.txt", true));

        bw.write("朵朵是猫猫呀!!");
        //换行
        bw.newLine();

        bw.write("可是你不是猫猫!");
        bw.newLine();

        bw.close();
    }
}

总结

到此这篇关于Java的字节缓冲流与字符缓冲流解析的文章就介绍到这了,更多相关Java的字节字符缓冲流内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文