为了提高数据读写的速度,Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组
根据数据操作单位可以把缓冲流分为:
BufferedReader 和 BufferedWriter或PrintWriter
BufferedInputStream 和 BufferedOutputStream
缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法, 增强了流处理能力.
对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush()将会使内存中的数据立刻写出
package com.xatu.IO;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class BufferedreaderTest {
public static void main(String[] args) {
Reader fr = null;
BufferedReader bufr = null;
try {
fr = new FileReader("BufferedreaderTest.java");
bufr = new BufferedReader(fr);//以低级流为基础,创建高级流
// String line = bufr.readLine();
// while (line != null) {
// System.out.println(line);
// line = bufr.readLine();
// }
String line = null;
int Number = 1;
while ((line=bufr.readLine()) != null) {
System.out.println(Number++ +" "+line);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
bufr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.xatu.IO;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class BufferedWriterTest {
public static void main(String[] args) {
Writer fw = null;
BufferedWriter bufw = null;
try {
String[] text = {
"zheshiyaoxiedewenjian\n",
"zheshiyaoxiedewenjian\n",
"zheshiyaoxiedewenjian\n",
"zheshiyaoxiedewenjian\n",
"zheshiyaoxiedewenjian\n",
"zheshiyaoxiedewenjian\n",
"zheshiyaoxiedewenjian\n"
};
fw = new FileWriter("wenbwnwenjian",true);
bufw = new BufferedWriter(fw);
for (String str : text) {
bufw.write(str);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (bufw != null)
try {
bufw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}