漁人碼頭

          天行健,君子以自強不息。地勢坤,君子以厚德載物。
          posts - 12, comments - 16, trackbacks - 0, articles - 43
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Java IO

          Posted on 2007-03-05 22:41 Fisher 閱讀(233) 評論(0)  編輯  收藏 所屬分類: Java基礎


          1、流:
          它是通過緩沖機制將數據從生產者(如鍵盤、磁盤文件、內存或其他設備)傳送到接受該數據的消費者(如屏幕、文件或者內存等)的這一過程的抽象。
          2、有關的Java包:
          Java.io包中包括許多類提供許多有關文件的各個方面操作。
          3、有關文件名及目錄名的類:File 類獨立于系統平臺,利用構造函數
          File( String path)、
          File(String path, String FileName)、
          File(File dir, String name) 等創建出File 對象;再利用canRead() 、canWrite()、 getParent()、 getPath()等成員函數實現對文件的各個屬性的操作。
          import java.io.*;
          public class FileTest
          { public static void main(String []args)
          {
          String FileName="C:\\temp\\myfile.dat"
          File myFile=new File(FileName);
          If( ! myFile. exists() )
          { System.err.println("Can't Find " + FileName);
          return;
          }
          System.out.println("File " + FileName + "is " +myFile.length() + "bytes Long !");
          If( myFile. isDirectory() )
          { System.err.println("File" + FileName +"Is a Directory !");
          return;
          }
          }
          }
          4、有關文件內容(數據)操作的類:
          4.1 輸入輸出抽象基類InputStream/OutputStream ,實現文件內容操作的基本功能函數read()、 write()、close()、skip()等;一般都是創建出其派生類對象(完成指定的特殊功能)來實現文件讀寫。在文件讀寫的編程過程中主要應該注意異常處理的技術。
          4.2 FileInputStream/FileOutputStream:
          用于本地文件讀寫(二進制格式讀寫并且是順序讀寫,讀和寫要分別創建出不同的文件流對象);
          本地文件讀寫編程的基本過程為:
          ① 生成文件流對象(對文件讀操作時應該為FileInputStream類,而文件寫應該為FileOutputStream類);
          ② 調用FileInputStream或FileOutputStream類中的功能函數如read()、write(int b)等)讀寫文件內容;
          ③ 關閉文件(close())。
          4.3 PipedInputStream/PipedOutputStream:
          用于管道輸入輸出(將一個程序或一個線程的輸出結果直接連接到另一個程序或一個線程的輸入端口,實現兩者數據直接傳送。操作時需要連結);
          4.3.1 管道的連接:
          方法之一是通過構造函數直接將某一個程序的輸出作為另一個程序的輸入,在定義對象時指明目標管道對象
          PipedInputStream pInput=new PipedInputStream();
          PipedOutputStream pOutput= new PipedOutputStream(pInput);
          方法之二是利用雙方類中的任一個成員函數 connect()相連接
          PipedInputStream pInput=new PipedInputStream();
          PipedOutputStream pOutput= new PipedOutputStream();
          pinput.connect(pOutput);
          4.3.2 管道的輸入與輸出:
          輸出管道對象調用write()成員函數輸出數據(即向管道的輸入端發送數據);而輸入管道對象調用read()成員函數可以讀起數據(即從輸出管道中獲得數據)。這主要是借助系統所提供的緩沖機制來實現的。
          4.4、隨機文件讀寫:
          RandomAccessFile類(它直接繼承于Object類而非InputStream/OutputStream類),從而可以實現讀寫文件中任何位置中的數據(只需要改變文件的讀寫位置的指針)。
          隨機文件讀寫編程的基本過程為:
          ① 生成流對象并且指明讀寫類型;
          ② 移動讀寫位置;
          ③ 讀寫文件內容;
          ④ 關閉文件。
          StringBuffer buf=new StringBuffer();
          char ch;
          while( (ch=(char)System.in.read()) !='\n')
          {
          buf.append( ch);
          } //讀寫方式可以為"r" or "rw"
          RandomAccessFile myFileStream=new RandomAccessFile("myFile.dat"," rw");
          myFileStream . seek(myFileStream.length()) ;
          myFileStream.writeBytes(buf.toString()); //將用戶從鍵盤輸入的內容添加到文件的尾部
          myFileStream.close();
          4.5 DataInput/DataOutput接口:實現與機器無關的各種數據格式讀寫(如readChar() 、readInt()、readLong()、readFloat(),而readLine()將返回一個String)。其中RandomAccessFile類實現了該接口,具有比FileInputStream或FileOutputStream類更靈活的數據讀寫方式。
          4.6 標準輸入輸出流:System.in(如:char c=System.in.read())和System.out(如:System.out.println()、System.out.println())。
          try
          { char ch=System.in.read(); //返回二進制數據(低8位為鍵盤的ASCII碼)
          }
          catch(IOException e)
          {
          }
          4.7、文件操作的一般方法:
          (1)生成一個輸入輸出文件類的對象(根據所要操作的類型);
          (2)調用此類的成員函數實現文件數據內容的讀寫;
          (3)關閉此文件。

          ?


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


          網站導航:
           
          主站蜘蛛池模板: 区。| 本溪市| 阳泉市| 库伦旗| 利辛县| 阆中市| 涞水县| 阜新市| 敦化市| 宝清县| 大连市| 和平区| 靖州| 师宗县| 施甸县| 巴南区| 吉水县| 徐水县| 新丰县| 包头市| 喀什市| 靖宇县| 那坡县| 观塘区| 普兰店市| 永寿县| 石柱| 双鸭山市| 兰考县| 南宁市| 萨嘎县| 明水县| 松溪县| 灵璧县| 萍乡市| 胶南市| 克东县| 台南县| 花莲市| 偃师市| 镇赉县|