java
IO通过缓冲流来提高读写效率,普通的字节、字符流都是一个字节一个字符这样读取的,而缓冲流则是将数据先缓冲起来,然后一起写入或者读取出来。
package com.io;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class TestBufferedString {
public static void main(String[] args) throws Exception {
// 指定要读取文件的缓冲输入字节流
BufferedInputStream in = new BufferedInputStream(new FileInputStream("F:\\photo\\IMG0460A.jpg"));
File file = new File("F:\\IMG0460A.jpg");
if (file != null) {
file.createNewFile();
}
// 指定要写入文件的缓冲输出字节流
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
byte[] bb = new byte[1024];// 用来存储每次读取到的字节数组
int n;// 每次读取到的字节数组的长度
while ((n = in.read(bb)) != -1) {
out.write(bb, 0, n);// 写入到输出流
}
out.close();// 关闭流
in.close();
}
}
缓冲处理流包括:BufferedInputStream,BufferedOutputStream,BufferedReader,bufferedWriter。
BufferedInputStream比较常用的几个方法是:
1、available()返回输入流中估计的字节数。
2、read()返回一个流中的一个字节。
3、read(byte[],int,int)从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。
BufferedOutputStream比较常用的几个方法是:
1、flush()刷新缓冲的输出流。
2、write(int)将指定的字节写入输出流。
3、write(byte[],int,int)从此字节输出流中给定偏移量处开始将各字节写入到指定的 byte 数组中。
BufferedReader和BufferedWriter实现缓冲的原理和BufferedInputStream与BufferedOutputStream相似,区别是BufferedReader和BufferedWriter是针对对字符流的而不是字节流。
BufferedReader最为重要的功能是readline()该方法一次可从输入流中读取一行,并返回改行内容。