缓存输入输出流就是主要对字符和文件的输入和输出流进行包装罢了,可以让文件的输入和输出进行的更快;
练习1:在D盘建立word.txt,将《再别康桥》的全文输入进去,并且再输出出来
public class erkang {
public static void main(String[] args) {
File p=new File("D:\\word.txt");//建立文件
FileWriter et=null;//建立字符输入流
BufferedWriter ey=null;//建立字符缓冲流
try {
et=new FileWriter(p);//对字符输出流进行实例化
ey=new BufferedWriter(et);//对输出流进行包装
String str="轻轻的我走了,\n" +
"正如我轻轻的来;\n" +
"我轻轻的招手,\n" +
"作别西天的云彩。\n" +
"\n" +
"那河畔的金柳,\n" +
"是夕阳中的新娘;\n" +
"波光里的艳影,\n" +
"在我的心头荡漾。\n" +
"\n" +
"软泥上的青荇,\n" +
"油油的在水底招摇;\n" +
"在康河的柔波里,\n" +
"我甘心做一条水草!\n" +
"\n" +
"那榆荫下的一潭";
ey.write(str);
ey.flush();//刷新强制将缓冲区的文件写入到文件中,即使没有写满
} catch (IOException e) {
e.printStackTrace();
}finally {
if(et!=null){
try {
et.close();//关闭输入流
ey.close();//关闭缓冲流
} catch (IOException e) {
e.printStackTrace();
}
}
}
FileReader eo=null;//建立字符输入流
BufferedReader ty=null;//建立字符输入缓冲流
try {
eo=new FileReader(p);//对字符输出流进行实例化
ty=new BufferedReader(eo);//对输入流进行包装
char[]qp=new char[1024];
int count;
while ((count=ty.read(qp))!=-1){
System.out.println(new String(qp,0,count));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(eo!=null){
try {
eo.close();//如果输出不为空值就关闭输出流
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}