以下代码转自:http://lionelxx777.iteye.com/blog/358128
Java进行文本文件操作的两种方法。
1.通常的做法是用FileInputStream和FileOutputStream来进行操作,以上两个类分别InputStream & OutputStream两个基类。
用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。
2.然后就是"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。
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"); } }
例子二:
// FileOutputDemo // Demonstration of FileOutputStream and PrintStream classes import java.io.*; class FileOutputDemo { public static void main(String args[]) { FileOutputStream out; // declare a file output object PrintStream p; // declare a print stream object try { // connected to "myfile.txt" out = new FileOutputStream("myfile.txt"); // Connect print stream to the output stream p = new PrintStream( out ); p.println ("This is written to a file"); p.close(); } catch (Exception e) { System.err.println ("Error writing to file"); } } }
例子三:
// FileReadTest.java // User FileReader in JDK1.1 to read a file import java.io.*; class FileReadTest { public static void main (String[] args) { FileReadTest t = new FileReadTest(); t.readMyFile(); } void readMyFile() { String record = null; int recCount = 0; try { FileReader fr = new FileReader("mydata.txt"); BufferedReader br = new BufferedReader(fr); record = new String(); while ((record = br.readLine()) != null) { recCount++; System.out.println(recCount + ": " + record); } br.close(); fr.close(); } catch (IOException e) { System.out.println("Uh oh, got an IOException error!"); e.printStackTrace(); } } }
例子四:
// FileWriteTest.java // User FileWriter in JDK1.1 to writer a file import java.io.*; class FileWriteTest { public static void main (String[] args) { FileWriteTest t = new FileWriteTest(); t.WriteMyFile(); } void WriteMyFile() { try { FileWriter fw = new FileWriter("mydata.txt"); PrintWriter out = new PrintWriter(fw); out.print(“hi,this will be wirte into the file!”); out.close(); fw.close(); } catch (IOException e) { System.out.println("Uh oh, got an IOException error!"); e.printStackTrace(); } } }