再美不及姑娘你
又见西风上碧树

字节缓冲流

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();
  }
}

 

posted on 2022-04-06 19:33  再美不及姑娘你  阅读(238)  评论(0)    收藏  举报