Java Web之I/O學習篇

    Java的I/O接口在包java.io下,主要包括如下幾組,前兩組主要是傳輸數據的數據格式,後兩組主要是傳輸數據的方式。:java

  1. 基於字節操做的I/O接口:InputStream和OutputStream。
  2. 基於字符操做的I/O接口:Writer和Reader。
  3. 基於磁盤操做的I/O接口:File。
  4. 基於網絡操做的I/O接口:Socket。

    不管是網絡仍是磁盤,最小的存儲單元是字節,而不是字符。因此I/O操做的都是字節。出現字符操做只是方便咱們平時的操做,由於平時的數據都是以字符的形式出現的。從字符到字節必須通過編碼的轉換。緩存

 

磁盤I/O工做機制:網絡

  1. 標準訪問文件的方式:程序調用read()接口,操做系統檢查內存中是否已經緩存數據,若是緩存了就直接返回,沒有,則從磁盤中讀取,而後寫入緩存文件中。調用write()接口,則把數據從用戶空間地址複製到內存地址的緩存中。這樣對於程序來講已經完成了,何時再寫入到磁盤中由操做系統決定。也能夠顯式的調用sync同步命令。
  2. 直接I/O的方式:程序直接訪問磁盤數據,不通過操做系統內核數據緩衝區。
  3. 同步訪問文件的方式。
  4. 異步訪問文件的方式。
  5. 內存映射的方式。
相關文章
相關標籤/搜索