字节缓冲流:
BufferOutputStream:该类实现缓冲输出流,通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用
BufferInputStream:创建BufferInputStream将创建一个内部缓冲区数组,当从流中国读取或者跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节
构造方法:
字节缓冲输出流:BufferOutputStream(OutputStream out)
字节缓冲输入流:BufferInputStream(InputStream in)
为什么构造方法需要的是字节流,而不是具体的文件或者路径呢?
字节缓冲流仅仅提供缓冲区,而真正的读写数据还得依靠基本的字节流对象进行操作
package com.io;
import java.io.*;
import java.nio.charset.StandardCharsets;
public class BufferStreamDemo {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("F:\\io\\java.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
bos.write("hello".getBytes(StandardCharsets.UTF_8));
bos.write("\r\n".getBytes(StandardCharsets.UTF_8));
bos.write("world".getBytes(StandardCharsets.UTF_8));
bos.close();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\io\\java.txt"));
//一次读取一个字节数据
int by;
while ((by = bis.read()) != -1) {
System.out.print((char) by);
}
//一次读取一个字节数组
byte[] bys = new byte[1024];
int len;
while ((len = bis.read(bys)) != -1) {
System.out.println(new String(bys, 0, len));
}
}
}版权声明:本文为qq_46184817原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。