1. 二進制IO操作
          主要通過InputStream和OutputStream類及其子類進行。方法和文本操作類似。
          FileInputStream和FileOutputStream用于操作文件。
          BufferedInputStream和BufferOutputStream和文本操作類似,只是默認的緩沖區大小為512字節。
          DataInputStream和DataOutputStream用于包裝InputStream和OutputStream,直接進行字符、實數、整數、布爾值等的讀寫。
          DataOutputStream中writeChar方法寫入Unicode編碼,如果要寫入ASCII嗎,使用writeByte。

          2. UTF編碼
          UTF編碼存儲字符使用的字節數不固定,小于0x7F的ASCII碼用一個字節表示,小于0x7FF的Unicode編碼用兩個字節表示,其余的Unicode編碼用三個字節表示。
          UTF編碼的開頭幾位表示該字符使用的字節數。如果第一位是0,則是單字節字符;如果前三位是110,則是雙字節字符;如果前四位是1110,則是三字節字符。
          字符串的長度則保存在UTF串的頭兩個字節。
          DataInputStream和DataOutputStream分別有readUTF()和writeUTF()方法操作UTF編碼。

          3. 當一個Unicode碼無法被轉換為ASCII碼時,產生的是”?”字符。

          4. 對象IO操作
          ObjectInputStream類和ObjectOutputStream類,使用readObject/writeObject方法進行讀寫。注意需要轉型。

          5. Serializeable接口
          可寫入對象流的對象稱為可串化的,可串化對象都繼承了java.io.Serializable接口,這是一個記號接口。
          當一個對象被儲存時,對象的類名、類的簽名、實例變量的值都被儲存,但是靜態變量不會被儲存。
          如果對象中含有不能被串化的實例數據域,必須將該數據域聲明為transient才能使得自身可串化。
          一個對象第一次被儲存時,對象的完整內容及序列號都會被保存,之后再存儲該對象,僅僅寫入序列號。

          6. 隨機文件訪問
          RandomAccessFile類同時繼承了DataInput和DataOutput接口。
          構造器中可以帶mode參數,”rw”表示可讀寫,”r”表示只讀。
          讀寫操作都在一個稱為文件指針指示的位置進行。
          length()方法返回文件的長度。
          sekk()方法在文件中跳躍。


          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2.24 Java notes - Simple Input and Output

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


          網站導航:
           
          主站蜘蛛池模板: 建湖县| 新营市| 静宁县| 秦皇岛市| 湖北省| 琼结县| 房产| 苗栗县| 太康县| 子长县| 盘锦市| 崇阳县| 水城县| 阜阳市| 吴江市| 伊金霍洛旗| 辰溪县| 佛山市| 中牟县| 阳曲县| 皮山县| 会理县| 平乐县| 永泰县| 甘德县| 定边县| 松原市| 玉屏| 台江县| 霍林郭勒市| 大渡口区| 六安市| 青河县| 沧州市| 思南县| 镇雄县| 酒泉市| 班戈县| 图木舒克市| 晴隆县| 公安县|