看的是Core Java
          1. Streams通常是文件,但也可能是網(wǎng)絡連接,甚至是內(nèi)存中的一塊。
          2. 讀寫字節(jié)
          InputStream的方法
          abstract int read()
          讀取一個byte并返回,如果到了輸入源的結(jié)尾就返回-1
          InputStream類也有幾個非抽象的方法用于讀取若干個字節(jié)或是跳過若干個字節(jié),但都需要調(diào)用read()方法,而子類繼承InputStream后也僅需要覆蓋read()方法即可。(注意此時繼承下來的讀取若干字節(jié)的方法調(diào)用了子類的read()方法)
          類似的OutputStream類的方法
          abstract void write(int b)
          read和write方法都可以暫停某個線程,直到字節(jié)讀寫完成后再繼續(xù)。這就意味著如果無法及時從網(wǎng)絡上讀取信息的話,Java會使得這次調(diào)用掛起嗎,此時就可以讓其他的線程工作了。
          available方法可以獲得當前可讀取的字節(jié)數(shù),從而防止掛起:
          int bytesAvailable = in.available();
          if (bytesAvailable < 0)
          {
          byte[] data = new byte[bytesAvailable];
          in.read(data);
          }
          對stream結(jié)束訪問后,使用close方法清理空間,以防系統(tǒng)資源耗竭。close方法同時也清洗了輸出流的緩沖區(qū),如果沒有close,最后寫入的內(nèi)容可能就無法送達了,不過也可以使用flush方法清洗緩沖區(qū)。
          3. API
          java.io.InputStream 1.0
          abstract int read()
          int read(byte[] b)
          int read(byte[] b, int off, int len)
          off參數(shù)為讀取的第一個字節(jié)寫入b數(shù)組的位置
          long skip(long n)
          返回實際跳過的字節(jié)數(shù)
          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 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2.20 Java notes - Streams and Files

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 科技| 精河县| 商南县| 潞西市| 剑阁县| 呼和浩特市| 漠河县| 林西县| 赣州市| 新干县| 宁德市| 云梦县| 西安市| 库车县| 富川| 吉木乃县| 马龙县| 肇庆市| 莲花县| 襄城县| 邓州市| 肥乡县| 轮台县| 南乐县| 漠河县| 福泉市| 兖州市| 来凤县| 平阴县| 克拉玛依市| 青浦区| 麻江县| 永泰县| 湖州市| 金昌市| 安乡县| 靖边县| 河曲县| 苍南县| 新乡市| 丹巴县|