JAVA I/O

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.