java缓冲流

缓冲流相比较基本流效率更高,因为自带长度的8192缓冲区

缓冲流在io体系中的的位置:

Snipaste_2024-02-08_10-37-22.png


字节缓冲流:
image.png

Snipaste_2024-02-08_10-39-55.png

缓冲流的构造方法:输入、输出

image.png


**先通过一个练习了解字节缓冲流
image.png
两个写法:

//创建缓冲流对象
BufferedInputStream bis=new BufferedInputStream(new FileInputStream("..\\ioDemo\\c.txt"));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("..\\ioDemo\\e.txt"));
//拷贝(一次拷贝一个字节)
int b;
while((b=bis.read())!=-1){
bos.write(b);
}
//关流
bos.close();
bis.close();
//创建缓冲流对象
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("..\\ioDemo\\c.txt"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("..\\ioDemo\\e.txt"));
//拷贝(一次拷贝一个数组)
int len;
byte[] bytes = new byte[1024];//一次读写的字节个数
while ((len = bis.read(bytes)) != -1) {
bos.write(bytes, 0, len);
}
//关流
bos.close();
bis.close();

源文件:image.png
目的文件:image.png

分析:
一次读取一个字节的情况:变量b起着中间人的作用
Snipaste_2024-02-08_11-08-57.png
一次读取一个字节数组的情况
Snipaste_2024-02-08_11-11-36.png
实际操作的是基本流
使得数据的传输都在内存内进行,减少了内存和硬盘之间的交互时间


字符缓冲流:

**字符流的缓冲区(字节数组),而字符缓冲流的缓冲区是(字符数组)
,使用字符缓冲流提升的效率不多,使用它主要是他有两个特有方法

Snipaste_2024-02-08_11-13-08.png

缓冲流的构造方法:输入、输出

image.png
**注意参数


字符缓冲输入流

特有方法:
image.png
可使用 会返回null的特性,来循环读取数据

代码演示:

/**字符缓冲输入流
* BufferedReader
* readLine
*/
BufferedReader br=new BufferedReader(new FileReader("..\\ioDemo\\f.txt"));
//循环读取
//细节:遇到回车换行会停止但不会读取到回车换行
String str ;
while ((str= br.readLine())!=null){
System.out.println(str);
}
br.close();

image.png
控制台:
image.png


字符缓冲输出流

特有方法:
image.png

WINDOWS—/r/n
Linux—/n
Mac—/r

代码演示:

/**
* 字符缓冲输出流
* BufferedWirter
*newLine跨平台的换行  -----Windows/r/n   -----linux/n  Mac/r
*/
BufferedWriter bw = new BufferedWriter(new FileWriter("..\\ioDemo\\g.txt"));
bw.write("123");
bw.newLine();
bw.write("木头人");
bw.newLine();
bw.close();

image.png


缓冲流总结:

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成果、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值