字节缓冲流:
-
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)); } } }