字节缓冲流
BufferedInputStream/BufferedOutputStream
缓冲流是对字节流的缓冲,可以加快字节流的效率。
使用缓冲流的前提是必须使用字节流,我们只需要关闭最外面的流就行了,内部的流会自动关闭。
1、缓冲字节输入流BufferedInputStream
import java.io.*;
/**
* 缓冲字节输入流BufferedInputStream
* 文件字节输入流,加入缓冲流(从"abc.txt"里输入,在控制台输出)
* 1、创建源
* 2、选择流
* 3、操作
* 4、释放资源
*/
public class BufferedTest01 {
public static void main(String[] args) {
//1、创建流
File src = new File("abc.txt");
//2、选择流
InputStream in = null;
try{
in = new BufferedInputStream(new FileInputStream(src));
//3、操作(分段读取)
byte[] flush = new byte[1024];
int len = -1;
while((len = in.read(flush))!=-1){
//字节数组->字符串(解码)
String str = new String(flush,0,len);
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//4、释放资源
if(null!=in){
try{
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
2、缓冲字节输出流BufferedOutputStream
import java.io.*;
/**
* 缓冲字节输出流BufferedOutputStream
* 文件字节输出流,加入缓冲流(输出到"dest.txt"里)
* 1、创建源
* 2、选择流
* 3、操作
* 4、释放资源
*/
public class BufferedTest02 {
public static void main(String[] args) {
File src = new File("dest.txt");
OutputStream out = null;
try{
out = new BufferedOutputStream(new FileOutputStream(src));
String msg = "IO is so easy\r\n北京欢迎你\r\n我爱我家";
byte[] datas = msg.getBytes();
out.write(datas,0,datas.length);
out.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(null!=out){
try{
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}