Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行 一次分析,归类,理清不同方法之间的异同点。 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的。 InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputStream 中我们有 FileOutputStream 这个对象。 用FileInputStream 来读取数据的常用方法是: FileInputStream fstream = new FileInputStream(args[0]); DataInputStream in = new DataInputStream(fstream); 用 in.readLine() 来得到数据,然后用 in.close() 关闭输入流。 完整代码见 Example 1。 用FileOutputStream 来写入数据的常用方法是: FileOutputStream out out = new FileOutputStream("myfile.txt"); PrintStream p = new PrintStream( out ); 用 p.println() 来写入数据,然后用 p.close() 关闭输入。 完整代码见 Example 2。 二.在 JDK 1.1中,支持两个新的对象 Reader & Writer, 它们只能用来对文本文件进行操作,而 JDK1.1中的 InputStream & OutputStream 可以对文本文件或二进制文件进行操作。
用FileReader 来读取文件的常用方法是: FileReader fr = new FileReader("mydata.txt"); BufferedReader br = new BufferedReader(fr); 用 br.readLing() 来读出数据,然后用br.close() 关闭缓存,用fr.close() 关闭文件。 完整代码见 Example 3。 用 FileWriter 来写入文件的常用方法是: FileWriter fw = new FileWriter("mydata.txt"); PrintWriter out = new PrintWriter(fw); 在用out.print 或 out.println 来往文件中写入数据,out.print 和 out.println的唯一区别是后者写 入数据或会自动开一新行。写完后要记得 用out.close() 关闭输出,用fw.close() 关闭文件。 完整代码见 Example 4。 -------------------------------------------------------------- following is the source code of examples------------------------------------------------------ Example 1: // FileInputDemo // Demonstrates FileInputStream and DataInputStream import java.io.*; class FileInputDemo { public static void main(String args[]) { // args.length is equivalent to argc in C if (args.length == 1) { try { // Open the file that is the first command line parameter FileInputStream fstream = new FileInputStream(args[0]); // Convert our input stream to a DataInputStream DataInputStream in = new DataInputStream(fstream); // Continue to read lines while there are still some left to read while (in.available() !=0) { // Print file line to screen System.out.println (in.readLine()); } in.close(); } catch (Exception e) { System.err.println("File input error"); } } else System.out.println("Invalid parameters"); } } Example 2: // FileOutputDemo // Demonstration of FileOutputStream and PrintStream classes import java.io.*; |