BufferedReader/BufferedWriter
BufferedInputStream/BufferedOutputStream
缓冲流–读写文件
package com.senior.iostream;
import org.junit.Test;
import java.io.*;
/**
* @author eden
* @Description
* @create projectTest-com.senior.iostream:2021-05-13-18:07
* @since
* 缓冲流可以提高流的读取和写入的速度
*/
public class BufferStream {
@Test
public void test(){
BufferedInputStream bufferedInputStream = null;
BufferedOutputStream bufferedOutputStream = null;
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
long startTime = System.currentTimeMillis();
try {
//1.造文件
File file = new File("pic.jpeg");
File file1 = new File("pic2.jpeg");
//2.造流
//2.1造字节流
//2.1造缓冲流
fileInputStream = new FileInputStream(file);
fileOutputStream = new FileOutputStream(file1);
bufferedInputStream = new BufferedInputStream(fileInputStream);
bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
//3.复制操作
byte[] byteBuffer = new byte[1024];
int len;
while((len = bufferedInputStream.read(byteBuffer))!=-1)
{
bufferedOutputStream.write(byteBuffer,0,len);
// bufferedOutputStream.flush();//刷新缓冲区
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//4.关闭流:由于节点流外面又包了一层缓冲流
//要求:关闭时要求先关闭外层再关闭内层
//说明:关闭外层流的同时,内层流也会关闭,所以可以省略不写
try {
bufferedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
bufferedOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
long endTime = System.currentTimeMillis();
System.out.println(endTime-startTime);
}
}
总结:
抽象基类 | 节点流(文件流) | 缓冲流(处理流的一种) |
---|---|---|
InputStream | FileInputStream – (read(byte[] buf)) | BufferedInputStream – (read(byte[] buf)) |
OutputStream | FileOutputStream – (write(byte[] buf,0,len)) | BufferedOutputStream – (write(byte[] buf,0,len)) |
Reader | FileReader – (read(char[] buf)) | BufferedReader – (read(char[] buf)) |
Writer | FileWriter – (write(char[] buf,0,len)) | BufferedWriter – (write(char[] buf,0,len)) |
FileInputStream/FileOutputStream:字节流,处理非文本文件(图片,视频, mp3, .doc, .ppt …)
FileReader/FileWriter: 字符流,处理文本文件(.txt .java .c/cpp .py …)
该博客图片来源于尚硅谷宋老师教学课件