Io输入输出流---缓冲流
缓冲流的使用
1.缓冲流
BufferedInputStream
BufferedOutputStream
BufferedReader
2.作用
加快流的读取、写入的速度
1.非文件的读写
package com.mokuiran.bufferedfile;
import java.io.*;
public class Demo {
public static void main(String[] args) {
Demo demo = new Demo();
demo.BufferedStreamTest();
}
public void BufferedStreamTest(){
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
//1.创建对象
File file1 = new File("1.jpg");
File file2 = new File("buffer1.jpg");
//2.创建流
//2.1 创建节点流
FileInputStream fi = new FileInputStream(file1);
FileOutputStream fo = new FileOutputStream(file2);
//2.2 创建缓冲流
bis = new BufferedInputStream(fi);
bos = new BufferedOutputStream(fo);
//3.读取和写入
byte[] bytes = new byte[10];
int len;
while ((len=bis.read(bytes)) != -1){
bos.write(bytes,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//4.关闭资源
//关闭外层流的同时,内层流也会自动的进行关闭。因此,内层流的关闭我们可以省略
try {
if (bos!=null)
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (bis!=null)
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2.文件的读写
package com.mokuiran.bufferedfile;
import java.io.*;
public class DemoBufferedRW {
public static void main(String[] args) {
DemoBufferedRW rw = new DemoBufferedRW();
rw.TestBufferedRW();
}
public void TestBufferedRW(){
BufferedReader br = null;
BufferedWriter bw = null;
try {
//1.创建对象
File file1 = new File("hello.txt");
File file2 = new File("buffer.txt");
//2.创建流
br = new BufferedReader(new FileReader(file1));
bw = new BufferedWriter(new FileWriter(file2));
//3.读取和写入
char[] bytes = new char[1024];
//方式一
// int len;
// while ((len=br.read(bytes)) != -1){
// bw.write(bytes,0,len);法
//方式二
// }
//方式二
String data;
while ((data = br.readLine()) != null){
//方式一
bw.write(data+"\n");
//方式二
// bw.write(data);//文件内容不换行
// bw.newLine();//换行
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//4.关闭资源
//关闭外层流的同时,内层流也会自动的进行关闭。因此,内层流的关闭我们可以省略
try {
if (bw!=null)
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (br!=null)
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~