一、字节缓冲输出流

java.io.BufferedOutputStream extends OutputStream

BufferedOutputStream:字节缓冲输出流。

继承自父类的共性成员方法:

public void close() :关闭此输出流并释放与此流相关联的任何系统资源。

public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。

public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。

public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。

public abstract void write(int b) :将指定的字节输出流。

构造方法:

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

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

参数:

OutputStream out:字节输出流,可以传递 FileOutputStream,缓冲流会给FileOutputStream增加一个缓冲区,提高FileOutputStream的写入效率

int size:指定缓冲流内部缓冲区的大小,不指定默认。

使用步骤【重要】

① 创建FileOutputStream对象,构造方法中绑定要输出的目的地

② 创建BufferedOutputStream对象,构造方法中传递FileOutputStream对象对象,提高FileOutputStream对象效率

③ 使用BufferedOutputStream对象中的方法write,把数据写入到内部缓冲区中

④ 使用BufferedOutputStream对象中的方法flush,把内部缓冲区中的数据,刷新到文件中

⑤ 释放资源(会先调用flush方法刷新数据)

Demo:

1 public static void main(String[] args) throwsIOException {2 //1.创建FileOutputStream对象,构造方法中绑定要输出的目的地

3 FileOutputStream fos = new FileOutputStream("E:\\a.txt");4 //2.创建BufferedOutputStream对象,构造方法中传递FileOutputStream对象对象,提高FileOutputStream对象效率

5 BufferedOutputStream bos = newBufferedOutputStream(fos);6 //3.使用BufferedOutputStream对象中的方法write,把数据写入到内部缓冲区中

7 bos.write("我把数据写入到内部缓冲区中".getBytes());8 //4.使用BufferedOutputStream对象中的方法flush,把内部缓冲区中的数据,刷新到文件中

9 bos.flush();10 //5.释放资源(会先调用flush方法刷新数据,第4部可以省略)

11 bos.close();12 }

二、字节缓冲输入流

java.io.BufferedInputStream extends InputStream

BufferedInputStream:字节缓冲输入流

继承自父类的成员方法:

int read()从输入流中读取数据的下一个字节。

int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。

void close() 关闭此输入流并释放与该流关联的所有系统资源。

构造方法:

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

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

参数:

InputStream in:字节输入流,可以传递FileInputStream,缓冲流会给FileInputStream增加一个缓冲区,提高FileInputStream的读取效率

int size:指定缓冲流内部缓冲区的大小,不指定默认。

使用步骤【重要】:

① 创建FileInputStream对象,构造方法中绑定要读取的数据源

② 创建BufferedInputStream对象,构造方法中传递FileInputStream对象,提高FileInputStream对象的读取效率

③ 使用BufferedInputStream对象中的方法read,读取文件

④ 释放资源

Demo:

1 public static void main(String[] args) throwsIOException {2 //1.创建FileInputStream对象,构造方法中绑定要读取的数据源

3 FileInputStream fis = new FileInputStream("10_IO\\a.txt");4 //2.创建BufferedInputStream对象,构造方法中传递FileInputStream对象,提高FileInputStream对象的读取效率

5 BufferedInputStream bis = newBufferedInputStream(fis);6 //3.使用BufferedInputStream对象中的方法read,读取文件7 //int read()从输入流中读取数据的下一个字节。

8 /*int len = 0;//记录每次读取到的字节9 while((len = bis.read())!=-1){10 System.out.println(len);11 }*/

12

13 //int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。

14 byte[] bytes =new byte[1024];//存储每次读取的数据

15 int len = 0; //记录每次读取的有效字节个数

16 while((len = bis.read(bytes))!=-1){17 System.out.println(new String(bytes,0,len));18 }19

20 //4.释放资源

21 bis.close();22 }

java byte缓存_Java 之 字节缓冲流相关推荐

  1. java 字节缓冲_Java字节缓冲流原理与用法详解

    本文实例讲述了Java字节缓冲流原理与用法.分享给大家供大家参考,具体如下: 一 介绍 BufferInputStresm和BufferOutputStream 这两个流类为IO提供了带缓冲区的操作, ...

  2. java 缓存教程_Java基础教程——缓冲流

    缓冲流 "缓冲流"也叫"包装流",是对基本输入输出流的增强: 字节缓冲流: BufferedInputStream , BufferedOutputStream ...

  3. Java练习题:字节缓冲流性能分析、 文档顺序恢复

    字节缓冲流性能分析 分别使用四种字节缓冲流进行文件复制测试其速度 这里准备了一个较大的视频文件130MB的视频文件进行测试 import com.wukong.io.BufferedInputStre ...

  4. Java入门学习第十七天——字节流读写文件、字节缓冲流拷贝文件

    字节流读写文件 字节流拷贝文件-按单个字节读写 FileInputStream:普通的字节输入流,用来读取数据的 构造方法: ​ public FileInputStream(String pathn ...

  5. Java字节缓冲流/字符流/IO流小结

    文章目录 字节缓冲流 字节缓冲流构造方法 字符流 为什么会出现字符流 编码表 字符串中的编码解码问题 字符流中的编码解码问题 字符流写数据的5种方式 字符流读数据的2种方式 字符缓冲流 字符缓冲流特有 ...

  6. 字节缓冲流 BufferedOutputStream java

    字节缓冲流 BufferedOutputStream java 演示

  7. 字节缓冲流 BufferedInputStream java

    字节缓冲流 java 示例 使用默认的缓冲数据来读 使用自定义的缓冲数值来读

  8. Java IO流之缓冲流:字节缓冲流BufferedOutputStream BufferedInputStream、字符缓冲流BufferedWriter、BufferedReader

    文章目录 缓冲流 1.字节缓冲流 构造方法 2.字符缓冲流 构造方法 练习:文章段落排序 缓冲流 缓冲流在基础的字节流和字符流上做功能的增强,能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储 ...

  9. Java18-day09【字节缓冲流、字符流、编码表、字符串与字符流中的编码解码问题、字符流读写数据的方式、字符缓冲流、IO流小结】

    视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java ...

最新文章

  1. 【English】哈佛大学用这12张图,让你远离负能量
  2. boost::test模块类属性工具的单元测试
  3. linux expect 扩容磁盘,openstack VM 磁盘扩容,修复 GPT 分区,更新分区表后,拉伸文件系统...
  4. 无意间发现我的博客园的年龄有11年了
  5. R语言列表(list)与向量(numeric)的转换
  6. 局域网互传文件工具_win10一键共享工具免费版(快速解决局域网文件共享问题)官方版...
  7. atheros ar9285 wireless network Adaper设备的驱动器正防止机器进入待机状态
  8. 八十年代的古董级晶体管直流稳压电源 WYJ-15V/1A
  9. 一份很哇塞的产品经理述职报告(附PPT下载)
  10. 什么是Spring、Spring的优点
  11. c语言标识首字母不能是,c语言的标识符由哪字符组成
  12. scrapy学习(完全版)
  13. (一)1.考研数一高数 之 函数及其性质
  14. 弹性盒模型(flex-box)
  15. ASP.NET 初始入门
  16. vue样式 引入图片_vue-cli脚手架引入图片的几种方法总结
  17. HTML代码中的空格和空行
  18. 网上关于画板子用什么软件的讨论
  19. 报错:The class java.lang.IllegalArgumentException may be caused by the wrapped ProcessingEnvironment
  20. 原生体验!老牌 RSS 阅读器:NetNewsWire

热门文章

  1. 【数学建模】MATLAB从入门到精通:Logistic模型原理及应用案例(附MATLAB代码)
  2. 卷积神经网络(CNN)反向传播算法
  3. MapReduce编程实战之“工作原理”
  4. spaCy教程(翻译自官网)
  5. LeetCode-剑指 Offer 12. 矩阵中的路径
  6. [特征工程系列三]显性特征的衍生
  7. 今日头条算法原理(全文)【转】
  8. 一文读懂tomcat组件--一个web服务器的架构演化史
  9. 探索 ConcurrentHashMap 高并发性的实现机制--转
  10. nginx 学习笔记(4) Connection处理方法