java.nio

特性:java

1,字符集編碼器和解碼器app

2,非阻塞的IO dom

3,內存映射文件編碼

4,文件加鎖機制spa


內存映射相關:操作系統

虛擬內存機制的利用, 文件通道(channel),通道是用於磁盤文件的一種抽象,它使咱們能夠訪問諸如內存映射、文件加鎖機制以及 文件間快速數據傳遞等操做系統特性。.net

FileChannel的map方法能夠返回一個MappedByteBuffer (繼承自ByteBuffer), 能夠指定區域與模式:blog

FileChannel.MapMode.READ_ONLY:只讀的繼承

 FileChannel.MapMode.READ_WRITE: 對映射區的修改會在某個時刻寫回文件,若是多個程序同時映射該文件,其行爲依賴操做系統內存

FileChannel.MapMode.PRIVATE:緩衝區可寫,可是不會影響到文件

使用nio文件映射須要的類:

java.nio.Buffer

java.nio.ByteBuffer

java.nio.MappedByteBuffer

java.nio.FileChannel,  文件通道能夠經過FileInput/OutputStream、RandomAccessFile獲得。

ByteBuffer能夠檢查緩衝區是否已滿,查看當前的界限(超過它繼續訪問沒有意義),還能夠想DataInput、DataOutput同樣處理二進制數據,也支持隨機訪問。相應的,處理文本數據能夠使用java.nio.CharBuffer


文件鎖:

能夠使用FileChannel的lock 、tryLock 、release 方法使用鎖,能夠給lock傳遞參數,指定鎖定範圍,以及是獨佔鎖仍是共享鎖(有些系統不支持共享鎖,所以可能獲得還是獨佔鎖)

相關文章
相關標籤/搜索