可以加快流的读取速度
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
字节缓冲流
@Test
public void testBufferedInputOutputStream(){
//1 提供读入,写出的文件
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
File file1 = new File("a.txt");
File file2 = new File("a3.txt");
//2 先创建相应的节点流 FileInputStream,FileOutputStream
FileInputStream fis = new FileInputStream(file1);
FileOutputStream fos = new FileOutputStream(file2);
//3 将创建的节点流的对象作为形参传递给缓冲流的构造器重
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(fos);
//4. 具体的实现文件的复制操作
byte[] b = new byte[1024];
int len;
while ((len = bis.read(b))!= -1){
bos.write(b,0,len);
//最后刷新缓存出去
bos.flush();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
//5. 关闭流
if (bos != null){
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bis != null){
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
字符缓冲流
@Test
public void testBufferedReader(){
BufferedReader br = null;
BufferedWriter bw = null;
try {
File file1 = new File("a.txt");
File file2 = new File("a4.txt");
FileReader fr = new FileReader(file1);
FileWriter fw = new FileWriter(file2);
br = new BufferedReader(fr);
bw = new BufferedWriter(fw);
String str;
while ((str = br.readLine())!=null){
bw.write(str+"\n");
bw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (br != null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bw != null){
if (bw != null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}