失樂園

          技術之路

          BlogJava 聯系 聚合 管理
            19 Posts :: 44 Stories :: 40 Comments :: 0 Trackbacks

                 首先: “流”的理解

                                     在JAVA中,一組有序的數據序列稱為“流”

                                      流分為輸入流和輸出流兩種!

              JAVA的IO系統負責的就是程序的輸入和輸出!  好好看看java.io包!雖然這個包很復雜。 頭暈!

             IO流: 1: 字節流    java.io.InputStream  /  java.io.OutputStream

                            2:字符流     java.io.Reader   /  java.io.Writer

                疑問: 搞不懂他們,如果簡單的認為字節流是數據流中最小的數據單元是字節,字符流中最小的數據單元是字符,做開發的時候就像我一樣,頭暈。

               字節流是最基本的! 字節流主要是用在二進制數據

              字符流是基礎與字節流之上!處理UNICODE數據

              有個問題就是  JAVA開發中所有的中文問題都是由字節流轉換成字符流的時候發生的!

            記得在一篇文章上看到過一個寫關于字節流和字符流相關的東西!

            叫做“搬蘋果”, 現在有一對蘋果,你怎么搬呢,用字節流是一個一個搬,字符流是做一個箱子然后把蘋果裝進箱子然后再搬! 大概意思就是這個樣子了,所以聽了感覺就是,字符流是字節流的包裝體了,事實上就是這個樣子的。但這樣說的話,好像是感覺字符流的效率要好過字節流了,不是這個樣子的,這個故事就是說明白了字節流是和字符流的運作過程!后來和同事談起來這個事情,他說的很好,他說字節流效率好!沒有了。后來又一位同事說:1:字節流速度快 2:字符流是通過字節流轉換的 所以這個故事和最后的答案都出來了!

                    這就是我對上面這個問題:字節流和字符流的區別的理解。

             在網上找了很多IO的示例程序! 采用的IO的類或者接口可是說是讓人頭暈的很,所以不學習下IO的常用類或者接口是不行的啊 呵呵

          從字節流開始:  

                     InputStream :抽象類,是所有字節輸入流的超類

                                子類: ByteArrayInputStream: 把字節數組轉換為輸入流,把內存中的一個緩沖區作為InputStream  使用

                                              FileInputStream          : 從文件中讀取數據,把一個文件作為InputStream,實現對文件的讀取操作

                                              PipedInputStream    : 連接一個PipedInputStream,實現了pipe的概念,主要在線程中使用

                                             SequenceInputStream : 把幾個輸入流轉換為一個輸入流,把多個InputStream合并為一個InputStream

                                            ObjectInputStream         :對象輸入流

                                             FilterInputStream         :裝飾器,具有擴展其他輸入流的功能

                    OutputStream:抽象類,是所有字節輸出流的超類

                                子類: ByteArrayOutputStream : 向字節數組(內存的緩沖區)中寫數據,把信息存入內存中的一個緩沖區中

                                              FileOutputStream           :向文件中寫數據,把信息存入文件中

                                              PipedInputStream         :向管道中輸出數據,與PipedInputStream搭配使用,實現了pipe的概念,主要在線程中使用

                                              ObjectOutputStream      :對象輸出流

                                              FilterOutputStream         :裝飾器,擴展其他輸出流的功能

          字節輸入流和輸出流的所有類都在這里總結,大概意思就是這樣!慢慢加深理解。

             字符流:   (處理字符流最大的問題是進行字符編碼的轉換)

                       Reader :  讀取字符流的抽象類

                                子類:

                                     CharArrayReader : 適配器,把字符數組轉換為Reader,從字符數組中讀取字符,與ByteArrayInputStream對應

                                     BufferedReader : 裝飾器,為其他的Reader提供緩沖區。

                                    LineNumberReader:裝飾器,為其他的Reader提供緩沖區,并且可以跟蹤字符輸入流中的行號

                                    StringReader     :  適配器,把字符串轉換為Reader,從字符串中讀取字符

                                    PipedReader     :連接一個PipedWriter

                                    FilterReader      : 裝飾器,擴展其他的Reader的功能

                                    InputStreamReader : 適配器,把InputStream轉換為Reader,可以指定數據源的字符編碼

                                    FileReader               : 從文件中讀取字符

                       Writer :   寫入字符流的抽象類

                            子類:

                                  CharArrayWriter : 適配器,把字符數組轉換為Witer,向字符數組中寫字符

                                  BufferedWriter    ; 裝飾器,為其他的Writer提供寫緩沖區

                                  StringWriter        :適配器,把StringBuffer轉換為Writer,向StringBuffer中寫字符

                                  PipedWriter        :連接一個PipedReader

                                  FilterWriter         :裝飾器,擴展其他的Writer的功能

                                  PringWriter         :裝配器,輸出格式化數據

                                  OutputStreamWriter   : 適配器,把OutputStream 轉換Writer ,可以指定數據匯的字符編碼

                                  FileWriter              : 向文件中寫字符

           

                File 類

                         File類提供了管理文件或目錄的方法。File實例表示真實文件系統中的一個文件或者目錄。

          總結:
          1.流分為輸入流(作為數據源,讀操作)、輸出流(輸出目的,寫操作)。
          2.字節流(以字節為單位操作),字符流(以字符為單位操作)
          3.inputStreamReader,outputStreamWriter字節流,字符流之間的轉換器。
          4.File文件,目錄操作類
          5.字節流,字符流一大堆包裝類,便于操作。

          posted on 2010-08-17 15:26 狄浩 閱讀(218) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 清丰县| 金门县| 红原县| 惠安县| 壤塘县| 河池市| 会泽县| 卢湾区| 长沙县| 昌吉市| 绥芬河市| 平昌县| 乌兰浩特市| 白沙| 汪清县| 永嘉县| 鹰潭市| 绥棱县| 裕民县| 梅河口市| 鄂托克旗| 新民市| 雷州市| 莆田市| 沁源县| 南投县| 珠海市| 汾阳市| 乐陵市| 延庆县| 巢湖市| 西宁市| 鄢陵县| 达孜县| 正蓝旗| 定南县| 横山县| 喀喇沁旗| 虞城县| 久治县| 富宁县|