最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中write方法是比较好费时间的,如果为了提高效率我们可以使用BufferedReader对Reader进行包装,这样可以提高读取得速度,我们可以一行一行的读取文本,使用readLine()方法。 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt"))) String data = null while((data = br.readLine())!=null) { System.out.println(data) } 当你明白了如何用Reader来读取文本文件的时候那么用Writer写文件同样非常简单。有一点需要注意,当你写文件的时候,为了提高效率,写入的数据会先放入缓冲区,然后写入文件。因此有时候你需要主动调用flush()方法。与上面对应的写文件的方法为: FileWriter fw = new FileWriter("hello.txt") String s = "hello world" fw.write(s,0,s.length()) fw.flush() OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt")) osw.write(s,0,s.length()) osw.flush() PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true) pw.println(s) 不要忘记用完后流!下面是个小例子,帮助新手理解。其实有的时候java的IO系统是需要我们多记记的,不然哪天就生疏了。 hello world i like java language import java.io. public class TestFile2 { public static void(String args) throws IOException { FileReader fr = new FileReader("ming.txt") char buffer = new char1024 int ch = 0 while((ch = fr.read())!=-1 ) { System.out.print((char)ch) } InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt")) while((ch = isr.read())!=-1) { System.out.print((char)ch) } BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt"))) String data = null while((data = br.readLine())!=null) { System.out.println(data) } FileWriter fw = new FileWriter("hello.txt") String s = "hello world" fw.write(s,0,s.length()) fw.flush() OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt")) osw.write(s,0,s.length()) osw.flush() PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true) pw.println(s) fr.close() isr.close() br.close() fw.close() osw.close() pw.close() } }