標籤:inpu puts esc 表示 根據 輸出 使用 檔案操作 介面
一、什麼是I/O、流
I/O就是資料的輸入輸出
流就是一個資料的序列
二、I/O的基本類庫結構
1、基於位元組操作的I/O介面:InputStream OutputStream
2、基於字元操作的I/0介面:Writer Reader
3、基於檔案操作的I/0介面:File
4、基於網路操作的I/O介面:Socket
三、磁碟I/O工作機制
1、讀寫檔案:記憶體緩衝機制:讀取檔案時,先查看記憶體緩衝中是否存在該資料,存在則直接載入到使用者空間
2、標準訪問檔案方式
(1)讀取時先檢查核心緩衝空間是否存在,有則返回,無則讀取磁碟載入到核心空間
(2)寫的時候從使用者地址空間複製到核心地址空間緩衝中,寫操作完成,寫到磁碟由系統負責,除非顯式調用 sync()
3、直接I/O方式
(1)應用程式直接存取磁碟資料,減少一次核心到使用者空間資料的複製
(2)這種載入方式較慢,一般與非同步I/O配合使用
4、記憶體映射方式
(1)記憶體映射是指將硬碟上的檔案位置與進程中的邏輯地址空間中的一塊大小相同的地區對應,訪問檔案轉換為訪問檔案
(2)適用於大量資料量的傳輸
四、訪問磁碟檔案
1、JAVA中的File不是一個真實存在的檔案對象,返回的是一個FileDescriptor對象,操作時產生StreamDecoder對象來指定編碼
五、JAVA序列化技術
1、序列化:將一個對象轉化為一串二進位表示的位元組數組,通過儲存或轉移位元組資料來達到持久化的目的
2、serialVesionUID:
(1)保證序列化版本的相容性【在序列化後又修改對象,如果沒有指定UID,還原序列化出錯】
(2)預設serialVersionUID:根據類、屬性、方法計算出一個獨一無二的變數值
3、適用:
(1)Web中儲存Session對象,Tomcat在伺服器關閉時會把Session儲存為一個Session.ser對象,稱為Session的鈍化
(2)網路對象的傳輸
六、網路I/0的工作機制
BIO/NIO/AIO
JAVA I/O