|            
Java 中对文件的读写操作之比较
  作者:Jeru Liu 日期:November 29,2000 版本:1.0
  纪念在chinaasp积分过一百呕心原创一篇(Java 中对文件的读写操作之比较)拿分好难呀,555~~~,不知道那些几千分的老妖们是怎么灌水的。
  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.*;
  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");     }   } }
  Example 3: // 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();      } }     }    
  Example 4: // 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();      } }     }    
   
 |