日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图学java基础篇之IO

發布時間:2023/11/30 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图学java基础篇之IO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java io體系


如圖可以看出,java的io按照包來劃分的話可以分為三大塊:io、nio、aio,但是從使用角度來看,這三塊其實揉雜在一起的,下邊我們先來概述下這三塊:

  • io:主要包含字符流和字節流,我們常用的文件讀寫,流處理等都要用到,也是本次介紹的重點。jdk1.7之后的io底層部分類經已改為使用阻塞的nio實現了
  • nio:jdk1.4后加入,多路非阻塞(多路IO復用模型),此外還實現了buffer、channel、selector、內存映射文件等實現。我們直接使用nio多數情況用于網路編程。
  • aio:jdk1.7支持,又叫做nio2,實現了異步非阻塞io。較nio更高效,也主要用于網絡編程。

由于本次主要介紹java基本的io類結構,io類的實現相對簡單(主要是字節或者字符數組的操作),而nio和aio更多時候我們關注的是網絡編程,要想理解需要對unix網絡模型、異步和阻塞等有比較清晰的理解,因此并不會花大量篇幅介紹各個類,示例也僅會給出鏈接。
快寫完的時候看到的一篇,寫的贊,果然水平還差的遠:深入分析 Java I/O 的工作機制

io類結構


常用的類不在介紹,下邊主要介紹一些有特殊功能的類

PipedWriter,PipedReader

管道輸入流,熟悉linux系統應該看到pipe應該就明白了,可以實現線程間通信,需要和PipedReader配套使用。詳解和示例

FilterReader,FilterWriter

根據名字也能看出來,目的事項實現一個流過濾器,但是你會發現其實是個抽象類,并沒有實現,這里只是提供了接口。掃了一下發現jdk里邊只有Utility的一個JavaWriter的靜態類實現了,其功能是將字節轉換成有效的java字符。

CharArrayReader,CharArrayWriter

將字節數組作為輸入或輸出流處理,一般作為中間值,用來將字符數組和其他IO字符處理類轉換。下邊的ByteArrayInputStream與此類似,不過處理的是字節數組。詳解和示例

PushbackReader,PushbackInputStream

具有回推功能的IO處理類,可以將已讀取過的數據再回推到緩沖區中,重復讀取(注意一般的流都是單向的,一旦讀取出來就不能再讀了)。詳解和示例

DataInputStream,DataOutputStream

提供了按照類型或編碼讀取寫入文件的方法,如byte[]、int、short、char、byte、UTF等類型或編碼的讀寫。詳解和示例

SequenceInputStream

如其名字:順序輸入流,改類允許將多個輸入流作為輸入,并按照順序處理多個流,使用的時候當做一個流處理。詳解和示例

RandomAccessFile

該類與其他IO類有較大不同,其支持隨機讀寫,對于格式化的記錄文件讀取很有優勢。此外由于其底層的操作已經改為由nio的FileChannel實現,因此在處理大文件的時候經常使用RandomAccessFile和MappedByteBuffer來讀取,不僅讀取速度更快,而且能夠避免文件過大導致內存溢出。詳解和示例

其他參考博文(侵刪)
  • https://www.ibm.com/developerworks/cn/java/j-lo-javaio/
  • http://www.cnblogs.com/kuangdaoyizhimei/p/4034232.html
  • http://www.cnblogs.com/kuangdaoyizhimei/p/4035611.html

nio和aio相關


上圖是整理的nio與aio的一些關鍵點,瞟一眼就好,詳細的nio講解可參考: Java NIO使用及原理分析

轉載于:https://www.cnblogs.com/good-temper/p/4947090.html

總結

以上是生活随笔為你收集整理的图学java基础篇之IO的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。