Java中对文件的读写操作之比较

  • 来源: 程序员之家 作者: sevenleaf   2010-06-28/14:12
  •       对于初学者来讲,Java对文件的读写也许会感动很晕乎,因为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。
    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();
         }
    }

     


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多