標籤:big 輸出資料流 序列化 writer cti uid int() 內建 屬性
[java中的IO流] 分類:1. 根據流的方向:輸入資料流和輸出資料流根據讀取文字的大小:位元組流和字元流;位元組流按位元組讀取,讀取中文時會產生亂碼,字元流按字元讀取,通常用於讀取中文。根據讀取的方式:節點流和緩衝流 [BufferedInputStream和....Output..] 建立一個對象,傳入一個檔案,這個對象作為緩衝流。可以減少檔案的讀寫次數,提高讀寫速度。程式最後,重新整理緩衝流:bos.fluse();緩衝區一定要關!bis.close();bos.close();(會自動重新整理緩衝流) 緩衝流的作用:將檔案對象作為參數傳入緩衝對象。這種寫法,我們稱之為IO鏈,IO關閉時只需要關閉最外層流,內層流將自動關閉。 [DataInputStream類] 用二進位對檔案進行讀寫操作,(可讀寫二進位檔案、基本fis讀寫可能出現亂碼)。與基本流相比,可以直接讀寫java中的基礎資料型別 (Elementary Data Type)。(使用DataOutputStream寫入的檔案,只能使用DataInputStream讀 )方法.readUTF();可讀取中文。 [ObjectInputStream]1.與基本流相同,可以直接使用read和writer讀寫;2.與DataInputStream相同,可以對java基礎資料型別 (Elementary Data Type)進行直接讀寫。方法.redaInt(); readDouble();等3.使用可以使用readObject()和writeObject()對對象進行讀寫。 讀寫對象時,一定要對要讀寫的對象類實現序列化。 [對象的序列化和還原序列化]概念:對象的序列化:將程式中的對象,持久化的儲存在檔案中的過程。對象的還原序列化:將檔案中儲存的對象,重新讀取到程式中的過程。序列化必須對象所屬 的類必須實現serializable介面當一個實體類,實現可序化介面後,可以it安家一個序列化版本號碼IDprivate static final long serialVersionUID = 1L;添加以後,可以用ID表示序列化和還原序列化操作的對象,是同一個對象。否則序列化之後,如果實體類屬性有刪減,在進行序列化時 系統預設不是同一類,會造成錯誤。 [字元流]1.在處理資料單元時,以一個字元作為單位;而位元組流,以一個位元組作為單位。2.字元的基類:Reader和Writer 是抽象類別FileReader和FileWriter是直接繼承字抽象類別的兩個基底字元流。3.FileReader和FileWriter只能使用系統使用的編碼格式;無法指定編碼,如果檔案格式與系統預設格式不一樣,那使用這兩個方法讀寫將造成中文亂碼。 [InputStreamReader和OutputStreamWriter]1.將位元組流轉換為字元流,同時支援自訂讀寫的編碼格式;檔案傳入時內建緩衝功能。2.常見的編碼格式。 ASCII : 美國標準訊息碼; ISO8859-1 : 歐洲碼; GB2312 : 國標碼; GBK : 國標擴充碼;ANSI編碼,可以分為很多種; 簡體中文: GB2312; GBk; 繁體中文: BIG-5;Unicode編碼:國際標準碼,相容絕大部分國家的編碼格式。可以分為UTF-6,UTF-8,UTF-16。
Java入門第六篇:I/O流