字节缓冲流
1.BufferedOutputStream:该类实现缓冲输出流,通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用
2.BufferedInputStream:创建BufferedIntputStream将创建一个内部缓冲区数组,当从流中读取或者跳过字节时,内部缓冲去将根据需要从所包含的输入流中重新填充,一次很多字节
构造方法:
字节缓冲输出流:BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
字节缓冲输入流:BufferedInputStream(InputStream in):创建一个 BufferedInputStream
并保存其参数,输入流 in
供以后使用。
为什么构造方法需要的时字节流而不是具体的文件名或者路径?
因为字节缓冲流仅仅提供缓冲区,而真正的读写数据还得依靠基本的字节流对象进行操作
public class Demo04 {
public static void main(String[] args) throws IOException {
//创建字节缓冲输出流
BufferedOutputStream bops=new BufferedOutputStream(new FileOutputStream("E:\\abc.txt"));
//创建字节缓冲输入流
BufferedInputStream bips=new BufferedInputStream(new FileInputStream("E:\\abc.txt"));
//写数据
bops.write("hello\r\n".getBytes());
bops.write("world\r\n".getBytes());
bops.close();
//读数据,方式一
int by;
while((by=bips.read())!=-1){
System.out.print((char)by);
}
System.out.println("------------------------------------------------");
//方式二 一次读取一个字节数组
byte[]bytes=new byte[1024];
int len;
while((len=bips.read(bytes))!=-1){
System.out.print(new String(bytes,0,len));
}
bips.close();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人