博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 20 - 9 带有缓冲区的字节输出流和字节输入流
阅读量:4449 次
发布时间:2019-06-07

本文共 1177 字,大约阅读时间需要 3 分钟。

由之前字节输入的两个方式,我们可以发现,通过定义数组读取数组的方式比一个个字节读取的方式快得多。

所以,java就专门提供了带有缓冲区的字节类:

缓冲区类(高效类)

写数据:BufferedOutputStream

    构造方法:

      BufferedInputStream( in) 创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。

      BufferedInputStream( in, int size) 创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。

读数据:BufferedInputStream

    构造方法:

      BufferedOutputStream( out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。

      BufferedOutputStream( out, int size) 创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。

 

疑惑:

  例如:BufferedOutputStream(OutputStream out)

      为什么不传递一个具体的文件或者文件路径,而是传递一个OutputStream对象呢?
原因:

  字节缓冲区流仅仅提供缓冲区,为高效而设计的。但是呢,真正的读写操作还得靠基本的流对象实现。

 例子:  BufferedOutputStream:相当于水杯
      OutputStream:相当于水,解渴还得靠水

 

创建高效字节输出流对象,并输入数据

BufferedOutputStream out = new BufferedOutputStream(                new FileOutputStream("c.txt"));

  // 输出数据

  out.write("javaIO".getBytes());

  out.close();

创建高校字节输入流对象,并输出数据

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(                "bos.txt"));

byte[] bys = new byte[1024];

int len = 0;
while ((len = bis.read(bys)) != -1) {
System.out.print(new String(bys, 0, len));
}

// 释放资源

bis.close();

 

转载于:https://www.cnblogs.com/LZL-student/p/5924791.html

你可能感兴趣的文章
iOS开发拓展篇——如何把项目托管到GitHub
查看>>
性能优化之数据库优化
查看>>
类的继承、菱形继承、派生、多态
查看>>
mysql约束
查看>>
javascript鼠标及键盘事件总结及案例
查看>>
mysql表之间的关系及级联操作
查看>>
mac 搭建virtualenv的那些坑
查看>>
多路复用IO模型
查看>>
并发、串行、并行及多道技术原理
查看>>
hashlib、pickle、hmac、logging模块使用
查看>>
javascript常用知识点总结
查看>>
2019秋招复习笔记--数据库基本操作
查看>>
2019秋招复习笔试--手写代码
查看>>
2019秋招复习笔记--智力题
查看>>
MySQL学习笔记
查看>>
2019秋招面试复习 项目重点提问
查看>>
面试题
查看>>
DS博客作业08-课程总结
查看>>
利用Python爬虫刷店铺微博等访问量最简单有效教程
查看>>
浅谈软件测试与墨菲定律
查看>>