工作小驛

          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 王君 閱讀(173) 評論(0)  編輯  收藏 所屬分類: J2SE
          主站蜘蛛池模板: 杨浦区| 扎兰屯市| 襄汾县| 苏尼特右旗| 田林县| 锡林浩特市| 江西省| 赣榆县| 永年县| 同仁县| 丹巴县| 瑞昌市| 江源县| 韩城市| 仁怀市| 龙山县| 阜新| 广东省| 山西省| 陆河县| 伊通| 宣城市| 翁源县| 基隆市| 抚松县| 濮阳市| 伊吾县| 唐山市| 高邮市| 闸北区| 潜江市| 若尔盖县| 青海省| 本溪| 班玛县| 德格县| 佛冈县| 郑州市| 天镇县| 宜良县| 普兰店市|