缓冲流原理就是将数据先缓冲起来,然后一起写入或读取出来,使用缓冲流读写文件非常高效,常用的缓冲流:BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream
- BuffferedReader与BufferedWriter
BufferedReader属于字符流,如果使用BufferedReader流,就需要将一个字节流变成字符流,为了解决这样的问题,在Java中提供两个转换类 - 将输入的字节流变为字符流InputStreamReader
- 将输出的字符流变为字节流OutputStreamWriter
BufferedReader
import java.io.*;
public class BufferedReaderDemo {
public static void main(String[] args) throws IOException{
read();
}
public static void read() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("D:/hello.txt")));
String line = null;
while((line= reader.readLine()) != null ){
System.out.println(line);
}
reader.close();
}
}
BufferedWriter写数据
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class BufferedWriterDemo {
public static void main(String[] args) throws IOException {
write();
}
public static void write() throws IOException {
BufferedWriter w = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:/hello.txt")));
w.write("几把飞");
w.close();
}
}
BufferedInputStream与BufferedOutputStream读写图片
import java.io.*;
public class BufferedInputStreamDemo {
public static void main(String[] args) throws IOException {
OutIn();
}
public static void OutIn() throws IOException {
BufferedInputStream in = new BufferedInputStream(new FileInputStream("D:\\1.png"));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("D:\\2.png"));
byte[] buf = new byte[1024];
int len =-1;
while ((len = in.read(buf)) != -1) {
out.write(buf,0,len);
}
out.close();
in.close();
}
}