java byte缓存_Java 之 字节缓冲流
一、字节缓冲输出流
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 之 字节缓冲流相关推荐
- java 字节缓冲_Java字节缓冲流原理与用法详解
本文实例讲述了Java字节缓冲流原理与用法.分享给大家供大家参考,具体如下: 一 介绍 BufferInputStresm和BufferOutputStream 这两个流类为IO提供了带缓冲区的操作, ...
- java 缓存教程_Java基础教程——缓冲流
缓冲流 "缓冲流"也叫"包装流",是对基本输入输出流的增强: 字节缓冲流: BufferedInputStream , BufferedOutputStream ...
- Java练习题:字节缓冲流性能分析、 文档顺序恢复
字节缓冲流性能分析 分别使用四种字节缓冲流进行文件复制测试其速度 这里准备了一个较大的视频文件130MB的视频文件进行测试 import com.wukong.io.BufferedInputStre ...
- Java入门学习第十七天——字节流读写文件、字节缓冲流拷贝文件
字节流读写文件 字节流拷贝文件-按单个字节读写 FileInputStream:普通的字节输入流,用来读取数据的 构造方法: public FileInputStream(String pathn ...
- Java字节缓冲流/字符流/IO流小结
文章目录 字节缓冲流 字节缓冲流构造方法 字符流 为什么会出现字符流 编码表 字符串中的编码解码问题 字符流中的编码解码问题 字符流写数据的5种方式 字符流读数据的2种方式 字符缓冲流 字符缓冲流特有 ...
- 字节缓冲流 BufferedOutputStream java
字节缓冲流 BufferedOutputStream java 演示
- 字节缓冲流 BufferedInputStream java
字节缓冲流 java 示例 使用默认的缓冲数据来读 使用自定义的缓冲数值来读
- Java IO流之缓冲流:字节缓冲流BufferedOutputStream BufferedInputStream、字符缓冲流BufferedWriter、BufferedReader
文章目录 缓冲流 1.字节缓冲流 构造方法 2.字符缓冲流 构造方法 练习:文章段落排序 缓冲流 缓冲流在基础的字节流和字符流上做功能的增强,能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储 ...
- Java18-day09【字节缓冲流、字符流、编码表、字符串与字符流中的编码解码问题、字符流读写数据的方式、字符缓冲流、IO流小结】
视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java ...
最新文章
- 【English】哈佛大学用这12张图,让你远离负能量
- boost::test模块类属性工具的单元测试
- linux expect 扩容磁盘,openstack VM 磁盘扩容,修复 GPT 分区,更新分区表后,拉伸文件系统...
- 无意间发现我的博客园的年龄有11年了
- R语言列表(list)与向量(numeric)的转换
- 局域网互传文件工具_win10一键共享工具免费版(快速解决局域网文件共享问题)官方版...
- atheros ar9285 wireless network Adaper设备的驱动器正防止机器进入待机状态
- 八十年代的古董级晶体管直流稳压电源 WYJ-15V/1A
- 一份很哇塞的产品经理述职报告(附PPT下载)
- 什么是Spring、Spring的优点
- c语言标识首字母不能是,c语言的标识符由哪字符组成
- scrapy学习(完全版)
- (一)1.考研数一高数 之 函数及其性质
- 弹性盒模型(flex-box)
- ASP.NET 初始入门
- vue样式 引入图片_vue-cli脚手架引入图片的几种方法总结
- HTML代码中的空格和空行
- 网上关于画板子用什么软件的讨论
- 报错:The class java.lang.IllegalArgumentException may be caused by the wrapped ProcessingEnvironment
- 原生体验!老牌 RSS 阅读器:NetNewsWire
热门文章
- 【数学建模】MATLAB从入门到精通:Logistic模型原理及应用案例(附MATLAB代码)
- 卷积神经网络(CNN)反向传播算法
- MapReduce编程实战之“工作原理”
- spaCy教程(翻译自官网)
- LeetCode-剑指 Offer 12. 矩阵中的路径
- [特征工程系列三]显性特征的衍生
- 今日头条算法原理(全文)【转】
- 一文读懂tomcat组件--一个web服务器的架构演化史
- 探索 ConcurrentHashMap 高并发性的实现机制--转
- nginx 学习笔记(4) Connection处理方法