IO流實例詳解

IO

一、IO流簡介

01.流的概念和作用

流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的的總稱或抽象。即數據在兩設備之間的傳輸稱爲流,流的本質是數據傳輸,根據數據傳輸特性將流抽象爲各種類,方便更直觀的進行數據操作。

02.Io流的分類

根據處理數據類型的不同分爲:字符流和字節流

字符流的由來:因爲數據編碼的不同,而有了對字符進行高效操作的對象。本質其實就是基於字節流讀取時,去查了指定的碼錶。

字節流和字符流的區別:

1) 讀寫單位不同:字節流以字節8bit爲單位,字符流以字符爲單位,根據碼錶映射字符,一次可能讀多個字節。

2) 處理對象不同:字節流 處理所有類型的數據(如圖片、avi等),而字符流只能處理字符類型的數據

3) 字節流:一次讀入或讀出是8爲二進制

4) 字符流:一次讀入或讀出是16位二進制

設備上的數據無論是圖片或者視屏,文字,它們都是以二進制存儲的。二進制的最終都是以一個8爲爲數據單元進行體現,所以計算機中最小的數據單元就是字節。意味着,字節流可以處理設備上的所又數據,所以字節流一樣可以處理字符數據。

結論:只要是處理純文本數據,就優先考慮使用字符流。除此之外都使用字節流

 

根具數據流向不同分爲:輸入流和輸出流。

輸入流只能進行讀操作,輸出流只能進行寫操作,程序中需要根據傳輸數據的不同特性而使用不同的流。

 

二、使用File操作文本文件

Java文件類以抽象的方式代表文件名和目錄路徑名。該類主要用於文件和目錄的創建、文件的查找和文件的刪除等。

 

三、讀寫文本文件

01.字節輸入流InputStream

 

02.字符輸入流Reader

 

03.字符緩存流BufferedReader

BufferedReader類是Reader類一個子類,它與FileReader類的區別在於,BufferedReader類帶有緩存區,它可以先把一批數據讀到緩存區接下來的讀取操作都是從緩存中讀取數據,避免每次都從數據源讀取數據進行字符編碼轉換,從而提高讀取操作的效率。

 

04.字節輸出流OutputStream

 

05.字符輸出流Writer

 

06.字符緩存區BufferedWriter

 

四、進制文件的讀寫

DataInputStreamFileInputStream的子類,繼承與DataInput

DataOutputStreamFileOutputStream的子類,繼承與DataOutput

01.讀寫.class文件

 

 

五、序列化與反序列化

01.ObjectOutputStream

 

02.ObjectInputStream

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章