看的是Core Java
          1. Streams通常是文件,但也可能是網絡連接,甚至是內存中的一塊。
          2. 讀寫字節
          InputStream的方法
          abstract int read()
          讀取一個byte并返回,如果到了輸入源的結尾就返回-1
          InputStream類也有幾個非抽象的方法用于讀取若干個字節或是跳過若干個字節,但都需要調用read()方法,而子類繼承InputStream后也僅需要覆蓋read()方法即可。(注意此時繼承下來的讀取若干字節的方法調用了子類的read()方法)
          類似的OutputStream類的方法
          abstract void write(int b)
          read和write方法都可以暫停某個線程,直到字節讀寫完成后再繼續。這就意味著如果無法及時從網絡上讀取信息的話,Java會使得這次調用掛起嗎,此時就可以讓其他的線程工作了。
          available方法可以獲得當前可讀取的字節數,從而防止掛起:
          int bytesAvailable = in.available();
          if (bytesAvailable < 0)
          {
          byte[] data = new byte[bytesAvailable];
          in.read(data);
          }
          對stream結束訪問后,使用close方法清理空間,以防系統資源耗竭。close方法同時也清洗了輸出流的緩沖區,如果沒有close,最后寫入的內容可能就無法送達了,不過也可以使用flush方法清洗緩沖區。
          3. API
          java.io.InputStream 1.0
          abstract int read()
          int read(byte[] b)
          int read(byte[] b, int off, int len)
          off參數為讀取的第一個字節寫入b數組的位置
          long skip(long n)
          返回實際跳過的字節數
          int available()
          void close()
          void mark(int readlimit)
          在當前位置做標記,如果讀取量超過了readlimit,就取消標記。并不是所有stream都支持mark
          void reset()
          回到上一個標記處。
          boolean markSupported()
          java.io.OutputStream 1.0
          abstract void write(int n)
          void write(byte[] b)
          void write(byte[] b, int off, int len)
          void close()
          void flush()

          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2.20 Java notes - Streams and Files

          Posted on 2007-04-22 20:24 ZelluX 閱讀(248) 評論(0)  編輯  收藏 所屬分類: OOP
          2007-02-20 21:13:42
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 金堂县| 吉木乃县| 剑河县| 美姑县| 双鸭山市| 论坛| 准格尔旗| 阳谷县| 阳新县| 弥勒县| 麻江县| 望城县| 来凤县| 福安市| 沧州市| 万山特区| 石首市| 峨边| 星子县| 修文县| 神农架林区| 肇东市| 和政县| 滨州市| 简阳市| 香格里拉县| 淄博市| 小金县| 阿克| 平山县| 丰县| 四子王旗| 团风县| 博兴县| 武义县| 荆州市| 盱眙县| 阳泉市| 谢通门县| 高陵县| 汕头市|