Java IO ---学习笔记(缓冲流)
来源:互联网 发布:基于粒子群算法的论文 编辑:程序博客网 时间:2024/06/06 02:31
类 BufferedInputStream 和 BufferedOutputStream 实现了带缓冲的过滤流,它提供了缓冲机制,把任意的 I/O 流“捆绑”到缓冲流上,可以提高 I/O 流的读取效率。
在初始化时,除了要指定所连接的 I/O 流之外,还可以指定缓冲区的大小。缺省时是用32字节大小的缓冲区;最优的缓冲区大小常依赖于主机操作系统、可使用的内存空间以及机器的配置等;一般缓冲区的大小为内存页或磁盘块等的整数倍。
BufferedInputStream 的数据成员 buf 是一个位数组,默认为2048字节。当读取数据来源时例如文件,BufferedInputStream 会尽量将 buf 填满。当使用 read ()方法时,实际上是先读取 buf 中的数据,而不是直接对数据来源作读取。当 buf 中的数据不足时,BufferedInputStream 才会再实现给定的 InputStream 对象的 read() 方法,从指定的装置中提取数据。
BufferedOutputStream 的数据成员 buf 是一个位数组,默认为512字节。当使用 write() 方法写入数据时,实际上会先将数据写至 buf 中,当 buf 已满时才会实现给定的 OutputStream 对象的 write() 方法,将 buf 数据写至目的地,而不是每次都对目的地作写入的动作。
构造方法:
//[ ]里的内容代表选填BufferedInputStream(InputStream in[,int size])BufferedOutputStream(OutputStream out[,int size])
举个例子,将缓冲流与文件流相接:
FileInputStream in = new FileInputStream("file.txt");FileOutputStream out = new FileOutputStream("file2.txt");//设置输入缓冲区大小为256字节BufferedInputStream bin = new BufferedInputStream(in,256)BufferedOutputStream bout = new BufferedOutputStream(out,256)int len;byte bArray[] = new byte[256];len = bin.read(bArray); //len 中得到的是实际读取的长度,bArray 中得到的是数据
对于 BufferedOutputStream,只有缓冲区满时,才会将数据真正送到输出流,但可以使用 flush() 方法人为地将尚未填满的缓冲区中的数据送出。
public void copy(InputStream in, OutputStream out) throw IOException { out = new BufferedOutputStream(out, 4096); byte[] buf = new byte[4096]; int len = in.read(buf); while (len != -1) { out.write(buf, 0, len); len = in.read(buf); } //最后一次读取得数据可能不到4096字节 out.flush();}
- Java IO ---学习笔记(缓冲流)
- Java学习笔记之IO流中的缓冲流
- java Io 缓冲流 BufferedInputStream BufferedOutputStream 笔记
- java Io 缓冲流 BufferedReader BufferedWriter 笔记
- java io 缓冲流
- IO学习(九)字节缓冲流,字符缓冲流
- Java学习笔记之IO(四):BufferedInputStream缓冲输入字节流
- Java学习笔记之IO(五):BufferedOutputStream缓冲输出字节流
- Java学习笔记之IO(九):BufferedReader缓冲输入字符流
- Java学习笔记之IO(十):BufferedWriter缓冲输出字符流
- Java笔记5 IO<2>缓冲流、转换流
- Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
- java基础学习IO流之缓冲流 十一 -5
- java IO流-缓冲流
- JAVA Io 缓冲输入输出流
- 10040---Java IO --缓冲流
- 【Java学习笔记】24:缓冲流(缓冲字节流/缓冲字符流)
- Java中如何优雅的结束线程
- Java中常见的几种RuntimeException
- Java IO ---学习笔记(InputStream 和 OutputStream)
- Ubuntu16.04 Caffe 安装步骤记录(超详尽)
- Java IO ---学习笔记(文件流)
- Java IO ---学习笔记(缓冲流)
- Java IO ---学习笔记(数据流)
- Java IO ---学习笔记(标准流、内存读写流、顺序输入流)
- Java IO ---学习笔记(字符流)
- Java IO ---学习笔记(文件操作与随机访问文件)
- 回流(reflow)和重绘(repaint)
- Java ---学习笔记(泛型)
- Tomcat相关知识点总结(jsp)
- wamp phpMyAdmin error #1045