一.概念
BufferedInputStream(InputStream in)创建一个带缓冲区的流。带缓冲区的输入流在从流中读入字符时,不会每次都对设备访问。当缓冲区为空是,会向缓冲区中读入一个新的数据块。
BufferedOutputStream(OutputStream out)创建一个带缓冲区的流。带缓冲区的输出流在收集要写出的字符时,不会每次都对设备访问。当缓冲区填满或当流被冲刷时,数据就被写出。
缓冲字符流BufferedWriter和BufferedReader的概念与上面的类似。
二.使用
1.BufferedWriter
public class BufferedWriterDemo {
public static void main(String[] args) {
try (Writer w = new FileWriter("C:\\Users\\sisheng\\Desktop\\BufferedStreamDemo.txt", true)) {
write(w);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* BufferedWriter类使用
*
* @param writer
*/
private static void write(Writer writer) {
try (BufferedWriter w = new BufferedWriter(writer, 1000)) {
w.write("我曾经跨过山和大海");
w.newLine();
w.write("我曾经跨过海和大山");
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.BufferedReader
public class BufferedReaderDemo {
public static void main(String[] args) {
try (Reader reader = new FileReader("C:\\Users\\sisheng\\Desktop\\BufferedStreamDemo.txt")) {
read(reader);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* BufferedReader类使用
*
* @param r
*/
private static void read(Reader r) {
BufferedReader br = new BufferedReader(r);
char[] chars = new char[10];
int len = -1;
try {
while ((len = br.read(chars)) != -1) {
String s = new String(chars, 0, len);
System.out.print(s);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}