隨筆-26  評論-13  文章-46  trackbacks-0
          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 2005-06-23 17:46 似水流年 閱讀(907) 評論(2)  編輯  收藏 所屬分類: Java

          評論:
          # re: Java 中對文件的讀寫操作之比較 2007-09-19 17:08 | f
          gffff  回復  更多評論
            
          # re: Java 中對文件的讀寫操作之比較 2007-09-19 17:08 | f
          gfb  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 福鼎市| 阜宁县| 肃北| 沙洋县| 汾西县| 平罗县| 潜江市| 南丰县| 全南县| 沭阳县| 龙泉市| 绥芬河市| 五河县| 精河县| 万盛区| 长兴县| 天峻县| 大邑县| 湟源县| 金乡县| 稷山县| 江北区| 宜川县| 双城市| 梅州市| 鄂温| 宁波市| 武穴市| 天峨县| 贵南县| 额济纳旗| 陆河县| 邻水| 大渡口区| 凯里市| 大邑县| 柘城县| 普宁市| 方城县| 仪征市| 同心县|