以下是用带缓存的方式实现文件的输入和输出,缓存是I/O的一种性能优化,缓存流为I/O流增加了内存缓存区,从而使得在流上执行skip(),mark(),reset()成为了可能;

BufferedReader类与BufferedWriter类分别继承于Reader类和Writer类,这两个类同样具有内部缓存机制,并且是以行为单位进行输入输出,字符数据读取文件的过程如下:

字符数据--->BufferedWriter--->OutputStreamWriter--->OutputStream--->文件;

BufferedReader类常用的方法如下:

read():读取单个字符;

readLine():读取文本行,并将其返回为字符串,若无数据可读,返回null.

BufferedWriter类常用方法如下:

write();写入字符串的某一部分;

flush();刷新该流的缓存;

newLine();写入一个行分隔符.

在使用BufferedWriter类的Write()方法时,数据并没有立刻被写入至输出流,而是首先进入缓存区中,如果想立刻将缓存区中的数据写入输出流,一定要调用flush()方法。

package edu.hue.rj;
 


 import java.io.BufferedReader; 

 import java.io.BufferedWriter; 

 import java.io.FileReader; 

 import java.io.FileWriter; 



 public class Readwirte { 

public static void main(String args[]){ 

try{ 

BufferedReader br=new BufferedReader(new FileReader("wr2.txt")); 

String s=null; 

int i=0; 

while((s=br.readLine())!=null) 

{ 

i++; 

System.out.println("第"+i+"行"+s); 

} 

br.close(); 

}catch(Exception e){ 

e.printStackTrace(); 

} 

 

try{ 

String s[]={"这似乎就不是完整的面向对象了,按照OO的原则就是一个对象只暴露有用的东西."}; 

FileWriter file=new FileWriter("wr.txt"); 

BufferedWriter bw=new BufferedWriter(file); 

for(int i=0;i<s.length;i++) 

{ 

bw.write(s[i]); 

bw.newLine(); 

} 

bw.close(); 

file.close(); 

 

} 

catch(Exception e){ 

e.printStackTrace(); 

} 

 

 } 



 }