亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

新I/O

2019-11-14 09:02:12
字體:
來源:轉載
供稿:網友

java SE 1.4引入了大量用于改進輸入/輸出處理機制的特性,它們位于java.nio包中,合稱“新I/O”。 

這個包中包含對下列特性的支持:字符集編碼器和解碼器,非阻塞的I/O ,內存映射文件,文件加鎖機制 。字符集編碼器和解碼器在前面已經說過了。

內存映射文件 大多數操作系統都可以利用虛擬內存實現來將一個文件或者文件的一部分“映射”到內存中。然后,這個文件就可以當作是內存數組一樣地訪問,這比傳統的文件操作要快得多 。內存映射比使用帶緩沖的順序輸入要稍微快一點,但是比使用RandomaccessFile快很多。當然,精確的值因機器不同會產生很大的差異,但是很明顯,如果需要使用隨機訪問,那么性能受損是不可避免的。另一方面,對于中等尺寸文件的順序讀入沒有必要使用內存映射。首先,從文件中獲得一個通道( channel),通道是用于磁盤文件的一種抽象,它使我們可以訪問諸如內存映射、文件加鎖機制以及文件間快速數據傳遞等操作系統特性。我們可以通過調用getChannel方法來獲得通道,這個方法已經添加到了FileInputStream、FileOutputStream和RandomAccessFile類中。

FileInputStream f = new FileInputStream(xxx);FileChannel chnanel = f.getChannel();然后,通過調用FileChannel類的map方法從這個通道中獲得一個MappedByteBuffer。你可以指定想要映射的文件區域與映射模

式,有三種模式可以得到支持:

FileChannel.MapMode.READ_ONLY:所產生的緩沖區是只讀的,任何對該緩沖區寫入的嘗試都會導致ReadOnlyBufferException異常。FileChannel.MapMode.READ_WRITE:所產生的緩沖區是可寫的,任何修改都會在某個時刻寫回到文件中。注意,其他映射同一個文件的程序可能不能立即看到這些修改,多個程序同時進行文件映射的確切行為是依賴于操作系統的。

FileChannel.MapMode.PRIVATE:所產生的緩沖區是可寫的,但是任何修改對這個緩沖區來說都是私有的,不會傳播到文件中。一旦有了緩沖區,就可以使用ByteBuffer類和Buffer超類的方法讀寫數據了。

文件加鎖機制

文件鎖可以控制對文件或文件中某個范圍的字節的訪問,但是,文件加鎖機制在不同的操作系統之間變化很大。

FileChannelFileLock lock()在整個文件上獲得一個獨占的鎖,這個方法將阻塞直至獲得鎖。FileLock tryLock()在整個文件上獲得一個獨占的鎖,或者在無法獲得鎖的情況下返回null。FileLock lock(long position, long size, boolean shared)FileLock tryLock(long position, long size, boolean shared)在文件的一個區域上獲得鎖。第一個方法將阻塞直至獲得鎖,而第二個方法將在無法獲得鎖時返回null。參數: position 要鎖定區域的起始位置size 要鎖定區域的尺寸shared true為共享鎖, false為獨占鎖
FileLockvoid release()釋放這個鎖。

MappedByteBuffer map(FileChannel.MapMode mode, long position, long size)將文件的一個區域映射到內存中。參數: mode FileChannel.MapMode類中的常量READ_ONLY、 READ_WRITE、或PRIVATE之一position 映射區域的起始位置size 映射區域的大小
bufferboolean hasRemaining()如果當前的緩沖區位置沒有達到這個緩沖區的界限位置則返回true。int limit()返回這個緩沖區的界限位置,即沒有任何值可用的第一個位置。
ByteBufferbyte get()從當前位置獲得一個字節,并將當前位置推到下一個字節。byte get(int index)從指定索引處獲得一個字節。ByteBuffer put(byte b)向當前位置推入一個字節,并將當前位置推到下一個字節。返回對這個緩沖區的引用。ByteBuffer put(int index, byte b)向指定索引處推入一個字節。返回對這個緩沖區的引用。ByteBuffer get(byte[] destination)ByteBuffer get(byte[] destination, int offset, int length)用緩沖區中的字節來填充字節數組,或者字節數組的某個區域,并將當前位置向前推讀入的字節數個位置。如果緩沖區不夠,那么就不會讀入任何字節,并拋出BufferUnderflowException。返回對這個緩沖區的引用。參數: destination 要填充的字節數組offset 要填充區域的偏移量length 要填充區域的長度ByteBuffer put(byte[] source)ByteBuffer put(byte[] source, int offset, int length)將字節數組中的所有字節或者給定區域的字節都推入緩沖區中,并將當前位置向前推寫出的字節數個位置。如果緩沖區不夠,那么就不會讀入任何字節,并拋出BufferUnderflow Exception。返回對這個緩沖區的引用。參數: source 要寫出的數組offset 要寫出區域的偏移量length 要寫出區域的長度Xxx getXxx()Xxx getXxx(int index)ByteBuffer putXxx(xxx value)ByteBuffer putXxx(int index, xxx value)獲得或放置一個二進制數。 Xxx Int、 Long、 Short、 Char、 Float或Double中的一個。ByteBuffer order(ByteOrder order)ByteOrder order()設置或獲得字節順序, order的值是ByteOrder類的常量BIG_ENDIAN或LITTLE_ENDIAN中的一個
Buffer clear()通過將位置復位到0,并將界限復位到容量,使這個緩沖區為寫出做好準備。返回this。Buffer flip()通過將界限設置到位置,并將位置復位到0,使這個緩沖區為讀入做好準備。返回this。Buffer rewind()通過將讀寫位置復位到0,并保持極限不變,使這個緩沖區為重新讀入相同的值做好準備。返回this。Buffer mark()將這個緩沖區的標記設置到讀寫位置,返回this。Buffer reset()將這個緩沖區的位置設置到標記,從而允許被標記的部分可以再次被讀入或寫出,返回this。int remaining()返回剩余可讀入或可寫出的值的數量,即界限與位置之間的差異。int position()返回這個緩沖區的位置。int capacity()返回這個緩沖區的容量。

charbuffer
char get()CharBuffer get(char[] destination)CharBuffer get(char[] destination, int offset, int length)從這個緩沖區的位置處開始,獲得一個char值,或者某個范圍的char值,然后將位置向前推過所讀入的字符。最后兩個方法返回this。CharBuffer put(char c)CharBuffer put(char[] source)CharBuffer put(char[] source, int offset, int length)
CharBuffer put(String source)CharBuffer put(CharBuffer source)從這個緩沖區的位置處開始,推入一個char值,或者某個范圍的char值,然后將位置向前推過所寫出的字符。CharBuffer read(CharBuffer destination)從這個緩沖區中獲得char值,然后將它們推入目標緩沖區,直至達到目標緩沖區的界限。返回this。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97av在线视频免费播放| 久久久久久高潮国产精品视| 国产91精品久久久久久久| 精品久久久免费| 久久男人av资源网站| 亚洲视频在线观看| 成人免费视频xnxx.com| 久久人人爽人人爽人人片亚洲| 欧美裸体视频网站| 国产精品久久二区| 久久99国产精品自在自在app| 国产成人精品在线视频| 国产精品专区一| 国产精品老牛影院在线观看| 91精品久久久久久久久| 爽爽爽爽爽爽爽成人免费观看| 色yeye香蕉凹凸一区二区av| 中文字幕亚洲一区在线观看| 色哟哟亚洲精品一区二区| 91精品国产高清久久久久久久久| 亚洲最新在线视频| 亚洲色图欧美制服丝袜另类第一页| 国产精品wwww| 欧美高清videos高潮hd| 亚洲国产欧美日韩精品| 国产精品海角社区在线观看| 国产极品精品在线观看| 97碰碰碰免费色视频| 日韩视频―中文字幕| 亚洲电影在线看| 久久精品精品电影网| 日韩电视剧免费观看网站| 欧美成人免费播放| 欧美国产一区二区三区| 日韩有码片在线观看| 正在播放国产一区| 2018国产精品视频| 亚洲视频在线播放| 97视频在线免费观看| 欧美一级片免费在线| 日韩欧美在线免费观看| 欧美激情欧美狂野欧美精品| 精品国产一区二区三区久久| 亚洲精品99久久久久中文字幕| 91视频国产精品| 日韩av第一页| 日本成人激情视频| 红桃视频成人在线观看| 久久久久女教师免费一区| 日韩欧美成人区| 久久久精品国产亚洲| 欧美天天综合色影久久精品| 98视频在线噜噜噜国产| 伊人激情综合网| 亚洲最大成人网色| 九九精品视频在线观看| 久久综合久久八八| 91影视免费在线观看| 日韩人体视频一二区| 久久人人爽国产| 国产成人综合一区二区三区| 亚洲精品一区二区久| 久久视频这里只有精品| 伊人精品在线观看| 成人免费激情视频| 在线观看精品自拍私拍| www日韩中文字幕在线看| 亚洲第一级黄色片| 日韩av有码在线| 日韩在线免费视频观看| 国产欧美精品一区二区三区-老狼| 69视频在线免费观看| 国产日产欧美a一级在线| 欧美性猛交xxxx免费看漫画| 国产精品国产自产拍高清av水多| 日韩成人久久久| 国内精品一区二区三区| 福利视频第一区| 国产综合久久久久久| 精品久久久久久久久久久久久| 一本一道久久a久久精品逆3p| 亚洲国产中文字幕久久网| 成人免费看黄网站| 亚洲大胆人体av| 日韩电视剧在线观看免费网站| 国产成人精品免高潮在线观看| 国产精品视频网站| 日韩精品视频在线观看网址| 欧美日本高清视频| 久久免费视频观看| 久热精品在线视频| 亚洲色图激情小说| 久久久99久久精品女同性| 黑人精品xxx一区一二区| 日韩中文第一页| 久久精品电影一区二区| 一级做a爰片久久毛片美女图片| 久久影院资源站| 韩国欧美亚洲国产| 亚洲精品久久久久久久久久久久久| 久久久久久久97| 久久精品99国产精品酒店日本| 欧美电影免费观看| 91亚洲一区精品| 97在线视频一区| 国产在线观看精品| 日韩大胆人体377p| 亚洲精品电影网在线观看| 国产日韩欧美自拍| 国产va免费精品高清在线观看| 国产亚洲精品美女| 色综合久久中文字幕综合网小说| 精品国产精品三级精品av网址| 午夜精品99久久免费| 色偷偷88888欧美精品久久久| 国产一区二区三区欧美| 欧美精品久久久久久久久| 国产精品亚洲美女av网站| 亚洲影院污污.| 国产精品视频午夜| 亚洲欧美自拍一区| 国产精品av在线播放| 成人午夜在线视频一区| 亚洲精品久久在线| 日韩亚洲欧美中文高清在线| 国产女人精品视频| 国产欧美一区二区三区久久人妖| 国产精品美女免费看| 亚洲国产中文字幕久久网| 中文字幕九色91在线| 日韩精品在线电影| 操日韩av在线电影| 国产精品视频26uuu| 亚洲性线免费观看视频成熟| 一本一本久久a久久精品牛牛影视| 91国产精品91| 日韩av在线免费观看一区| 久久久免费精品视频| 88国产精品欧美一区二区三区| 亚洲一区二区中文| 国内精品久久久久伊人av| 久久久精品日本| 久久天天躁夜夜躁狠狠躁2022| 国产精品国产福利国产秒拍| 亚洲人成在线观| 日韩精品中文字幕在线观看| 欧美日韩性视频在线| 川上优av一区二区线观看| 亚洲人成网站999久久久综合| 国产美女精彩久久| 国内精品中文字幕| 日韩视频在线观看免费| 91精品久久久久久久久久另类| 国产精品主播视频| 日韩中文在线观看| 亚洲欧美色婷婷| 久久亚洲精品国产亚洲老地址| 亚洲网站在线播放| 96国产粉嫩美女| 欧美黑人性视频| 懂色av影视一区二区三区| 91精品综合久久久久久五月天| 欧美在线视频一区二区| 91精品国产99久久久久久|