特性: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傳遞參數,指定鎖定範圍,以及是獨佔鎖仍是共享鎖(有些系統不支持共享鎖,所以可能獲得還是獨佔鎖)