工作小驛

          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
          主站蜘蛛池模板: 阜宁县| 德清县| 德庆县| 高安市| 怀宁县| 平度市| 文安县| 耿马| 德庆县| 昌宁县| 广丰县| 兴仁县| 凤凰县| 通化县| 马关县| 务川| 保亭| 明光市| 鹤岗市| 华坪县| 乾安县| 延长县| 交口县| 湖北省| 巩留县| 汾阳市| 昌黎县| 池州市| 秦皇岛市| 敖汉旗| 溧阳市| 南阳市| 天峨县| 祥云县| 德钦县| 常熟市| 荥经县| 宣城市| 腾冲县| 东丰县| 贵阳市|