工作小驛

          Ninja!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks

          以字節為導向的stream
          ================================================================================
          1) input stream:

          1) ByteArrayInputStream:   把內存中的一個緩沖區作為InputStream使用
          2) StringBufferInputStream:把一個String對象作為InputStream
          3) FileInputStream:    把一個文件作為InputStream,實現對文件的讀取操作
          4) PipedInputStream:   實現了pipe的概念,主要在線程中使用
          5) SequenceInputStream:把多個InputStream合并為一個InputStream
          6) FilterInputStream

          2) Out stream

          1) ByteArrayOutputStream:把信息存入內存中的一個緩沖區中
          2) FileOutputStream:     把信息存入文件中
          3) PipedOutputStream:    實現了pipe的概念,主要在線程中使用
          4) SequenceOutputStream: 把多個OutStream合并為一個OutStream
          5) FilterOutputStream

           

          以Unicode字符為導向的stream
          ================================================================================
          表示以Unicode字符為單位從stream中讀取或往stream中寫入信息。
          1) Input Stream

          1) CharArrayReader: 與ByteArrayInputStream對應
          2) StringReader:    與StringBufferInputStream對應
          3) FileReader:      與FileInputStream對應
          4) PipedReader:     與PipedInputStream對應

          2) Out Stream

          1) CharArrayWrite:  與ByteArrayOutputStream對應
          2) StringWrite:     無與之對應的以字節為導向的stream
          3) FileWrite:       與FileOutputStream對應
          4) PipedWrite:      與PipedOutputStream對應

           

          差異
          ================================================================================
          InputStreamReader和OutputStreamReader:
          把一個以字節為導向的stream轉換成一個以字符為導向的stream。

           


          stream添加屬性
          ================================================================================
          通過FilterInputStream和FilterOutStream的子類,我們可以為stream添加屬性。

          實現“先把要寫入文件的數據先緩存到內存中,再把緩存中的數據寫入文件中”的功能時,
          上面的API就沒有一個能滿足我們的需求了。
          但是通過FilterInputStream和FilterOutStream的子類,為FileOutStream添加我們所需要的功能。

          2.2 FilterInputStream的各種類型
          2.2.1 用于封裝以字節為導向的InputStream

          1) DataInputStream:      從stream中讀取基本類型(int、char等)數據。
          2) BufferedInputStream:  使用緩沖區
          3) LineNumberInputStream:會記錄input stream內的行數,然后可以調用getLineNumber()
                                    和setLineNumber(int)
          4) PushbackInputStream:  很少用到,一般用于編譯器開發

          2.2.2 用于封裝以字符為導向的InputStream

          1) 沒有與DataInputStream對應的類。除非在要使用readLine()時改用BufferedReader,
             否則使用DataInputStream
          2) BufferedReader:與BufferedInputStream對應
          3) LineNumberReader:與LineNumberInputStream對應
          4) PushBackReader:與PushbackInputStream對應

          2.3 FilterOutStream的各種類型

          2.2.3 用于封裝以字節為導向的OutputStream
          1) DataIOutStream:   往stream中輸出基本類型(int、char等)數據。
          2) BufferedOutStream:使用緩沖區
          3) PrintStream:      產生格式化輸出

          2.2.4 用于封裝以字符為導向的OutputStream
          1) BufferedWrite:與對應
          2) PrintWrite:與對應
          3. RandomAccessFile
          1) 可通過RandomAccessFile對象完成對文件的讀寫操作
          2) 在產生一個對象時,可指明要打開的文件的性質:r,只讀;w,只寫;rw可讀寫
          3) 可以直接跳到文件中指定的位置

          posted on 2007-07-05 13:51 王君 閱讀(175) 評論(0)  編輯  收藏 所屬分類: J2SE
          主站蜘蛛池模板: 青铜峡市| 高雄市| 鄂温| 宁波市| 濉溪县| 呼伦贝尔市| 宁晋县| 同德县| 乌苏市| 司法| 元氏县| 吴忠市| 阳新县| 黄石市| 津市市| 光山县| 广昌县| 宁安市| 崇明县| 巴林左旗| 临澧县| 浮梁县| 鹿泉市| 苍溪县| 石门县| 海伦市| 杂多县| 广德县| 安多县| 二连浩特市| 特克斯县| 新余市| 武山县| 苏州市| 光山县| 邵东县| 屏山县| 安宁市| 玉田县| 库尔勒市| 张北县|