IO流之缓冲流
-
缓冲流的作用:提供流的读取、写入的速度
提高读写速度的原因:内部提供了一个缓冲区
代码演示:缓冲流实现非文本文件的复制
package com.yicurtain.IO;
import org.junit.Test;
import java.io.*;
public class bufferedTest {
//缓冲流实现非文本文件的复制
@Test
public void bufferedStreamTest(){
// 1.造文件路径
BufferedInputStream bfis = null;
BufferedOutputStream bfos = null;
try {
File file1 = new File("beauty.jpg");
File file2 = new File("beauty1.jpg");
// 2.造流
// 2.1 造节点流
FileInputStream fis = new FileInputStream(file1);
FileOutputStream fos = new FileOutputStream(file2);
// 2.2 造缓冲流
bfis = new BufferedInputStream(fis);
bfos = new BufferedOutputStream(fos);
// 3.实现读入和写入的操作
byte[] buffer = new byte[10];
int len;
while ((len=bfis.read(buffer))!=-1){
bfos.write(buffer,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 4.关闭流:先关外面的流,在关里面的流.但是关闭外层的流的时候,里面的流会自动关闭;因此只需关闭外层流。
try {
if (bfis!=null)
bfis.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (bfos!=null)
bfos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
代码演示:缓冲流实现文本文件的复制
//缓冲流实现文本文件的复制
@Test
public void bufferedFileReaderWriteTest(){
//1.简写:造文件路径,并且造流。
BufferedReader br = null;
BufferedWriter bw = null;
try {
br = new BufferedReader(new FileReader(new File("科技英语.txt")));
bw = new BufferedWriter(new FileWriter(new File("科技英语1.txt")));
// 2.实现读入和写入的操作
char[] cbuf = new char[5];
int len;
while ((len=br.read(cbuf))!=-1){
bw.write(cbuf,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 3.关闭流
try {
if (br!=null)
br.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (bw!=null)
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
浙公网安备 33010602011771号