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。

          -------------------------------------------------------------- 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();
               }
          }
           
          }   

          posted on 2008-05-06 16:36 小牛小蝦 閱讀(448) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2008年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          eclipse

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 日照市| 万山特区| 东明县| 施秉县| 珲春市| 忻州市| 濮阳市| 五家渠市| 张掖市| 普兰店市| 辽宁省| 玉田县| 隆安县| 武陟县| 阿荣旗| 东方市| 建德市| 和硕县| 诸城市| 甘孜| 射洪县| 洪泽县| 庆城县| 宜城市| SHOW| 宁城县| 宜阳县| 井研县| 凭祥市| 怀柔区| 昌江| 克什克腾旗| 沐川县| 吴忠市| 大埔区| 申扎县| 贺州市| 鄢陵县| 霍邱县| 额尔古纳市| 延庆县|