缓冲流分为两类:
(1)BufferedInputStream 和BufferedOutputStream:针对字节的缓冲输入和输出流
(2)BufferedReader 和BufferedWriter :针对字符的缓冲输入和输出流
例:BufferedReader 和BufferedWriter 类
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class text2_Buffere {
public static void main(String[] args) {
// TODO 自动生成的方法存根
long timeStart=System.currentTimeMillis();
try {
/*
* 先产生FileReader类的实例化对象,然后再产生FileWriter对象
* */
//FileReader finput=new FileReader("data\\12游戏软件");
//FileWriter foutput=new FileWriter("data\\12游戏软件副本");
BufferedReader finput=new BufferedReader(new FileReader("data\\12游戏软件"));
BufferedWriter foutput=new BufferedWriter(new FileWriter("data\\12游戏软件副本"));
/*
int i=0;
while((i=finput.read())!=-1) {
System.out.print((char)i);//输入在控制台上而已
foutput.write(i);// 在循环中读取“12游戏软件”文件的内容【在这里用 read() 读取】,
} //再调用FileWriter对象的writer()方法把内容写入“12游戏软件副本”中。
*/
String s="";
while((s=finput.readLine())!=null) {//一行一行的读取内容,直到文件尾(到读取时读到的行中为null时停止)
System.out.println(s); //输出在控制台上
foutput.write(s); //写入文件中(写入文件时不会自动换行会把读取的行中的内容一行连着一行输出,所以需要下一步骤换行)
foutput.newLine(); //换行
}
/*
* 操作完成后 关闭输入流,调用输出流的 Flush()方法 清空缓冲区 ,并且关闭输出流。
* */
finput.close();//关闭输入流区
foutput.flush();//清空缓冲区
foutput.close();//关闭输出流
//需要异常的处理
}catch (FileNotFoundException e) {
// TODO: handle exception
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}finally {
long timeEnd=System.currentTimeMillis();
System.out.println("\n使用文件花费的时间:"+(timeEnd-timeStart)+"毫秒");
}
}
}
网友评论