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

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

新I/O

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

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
久久激情视频免费观看| 亚洲第一网站免费视频| 麻豆精品精华液| 成人av色在线观看| 神马久久桃色视频| 日韩va亚洲va欧洲va国产| 午夜精品蜜臀一区二区三区免费| 91视频免费在线| 韩国欧美亚洲国产| 日韩电影大全免费观看2023年上| 久久久999国产精品| 欧美日韩国产一区二区三区| 美日韩丰满少妇在线观看| 久久伊人精品天天| 欧美成人激情在线| 欧美在线一级va免费观看| 热re99久久精品国产66热| 国产亚洲福利一区| 亚洲欧美精品在线| 亚洲毛茸茸少妇高潮呻吟| 久久久久久九九九| 亚洲成色777777在线观看影院| 97在线观看免费高清| 国产69精品久久久久9| 国产精品∨欧美精品v日韩精品| 亚洲欧美国产日韩天堂区| 欧美精品制服第一页| 日韩在线视频免费观看| 欧美贵妇videos办公室| 最近免费中文字幕视频2019| 久久精品国产电影| 亚洲久久久久久久久久| 国产精品福利无圣光在线一区| 日韩中文字幕亚洲| 欧美性猛交xxxx富婆| 日韩精品免费在线| 日韩www在线| 亚洲国产精彩中文乱码av在线播放| 美女av一区二区三区| 国产精品美女无圣光视频| 精品人伦一区二区三区蜜桃免费| 免费不卡欧美自拍视频| 这里精品视频免费| 国产成人精品久久二区二区91| 91美女片黄在线观看游戏| 原创国产精品91| 九九热精品视频国产| 国产精品久久9| 91免费版网站入口| 国产精品网站视频| 亚洲午夜精品久久久久久性色| 2018日韩中文字幕| 国产脚交av在线一区二区| 九九热最新视频//这里只有精品| 久久久综合av| 色哟哟入口国产精品| 亚洲毛片在线免费观看| 在线精品高清中文字幕| 欧美特级www| 欧美大全免费观看电视剧大泉洋| 日韩精品久久久久| 亚洲性视频网址| 亚洲欧洲第一视频| 日韩欧美国产免费播放| 国产精品视频午夜| 久久精品成人欧美大片古装| 国产精品入口日韩视频大尺度| 26uuu另类亚洲欧美日本一| 亚洲女人被黑人巨大进入| 中文字幕日韩免费视频| 91在线观看免费观看| 久久久久国产视频| 国产成人精品久久亚洲高清不卡| 欧美激情视频在线免费观看 欧美视频免费一| 欧美成人免费在线视频| 久久99久久99精品免观看粉嫩| 亚洲国模精品一区| 色综合五月天导航| 国产亚洲人成a一在线v站| 亚洲精品久久久久久久久| 午夜精品99久久免费| 久久精品99久久香蕉国产色戒| 国产成人精品视频在线| 中文字幕欧美精品日韩中文字幕| 欧美成人三级视频网站| 91在线免费网站| 日韩精品有码在线观看| 91精品美女在线| 久久全球大尺度高清视频| 久久99精品视频一区97| 久久久免费高清电视剧观看| 欧美性感美女h网站在线观看免费| 欧美日韩国产成人| 国产在线98福利播放视频| 亚洲天堂开心观看| 国产精品欧美风情| 国产日本欧美一区| 精品日韩美女的视频高清| 插插插亚洲综合网| 国产精品com| 中文在线不卡视频| 日韩在线视频网站| 精品电影在线观看| 国产精品高潮视频| 国产精品亚洲综合天堂夜夜| 91在线国产电影| 日韩精品在线免费播放| 亚洲r级在线观看| 国产精品久久久久久一区二区| 97国产精品久久| 日韩欧美在线视频日韩欧美在线视频| 久久精品视频在线观看| 日韩电影免费在线观看| 国产精品444| 国产精品人成电影| 日韩欧美精品免费在线| 国产区精品视频| 国产丝袜精品视频| 中文字幕精品—区二区| 欧美日韩国产麻豆| 久久久久久久影视| 亚洲va男人天堂| 激情久久av一区av二区av三区| 久久这里只有精品99| 亚洲一区第一页| 国产精品视频一| 91日本视频在线| 亚洲国语精品自产拍在线观看| 一区二区成人精品| 国产在线拍揄自揄视频不卡99| 欧美高清在线播放| 国产欧美精品日韩精品| 国产精品三级久久久久久电影| 亚洲午夜av久久乱码| 中文字幕精品在线| 欧美激情一区二区三区成人| 国产久一一精品| 91av免费观看91av精品在线| 日韩av在线影院| 国产精品揄拍一区二区| 97久久国产精品| 久久精品国产视频| 久久久久久久久亚洲| 欧美专区第一页| 欧美一区三区三区高中清蜜桃| 国语自产在线不卡| 亚洲国模精品私拍| 中文字幕国产精品| 国产成人精品av在线| 成人h猎奇视频网站| 亚洲xxxxx电影| 97色在线观看| 久久男人的天堂| 国产精品欧美亚洲777777| 欧美日韩激情美女| 亚洲欧美激情一区| 一区二区av在线| 欧美国产日韩视频| 亚洲免费人成在线视频观看| 欧美成人国产va精品日本一级| 国产一区二区久久精品| 97av在线视频免费播放| 欧美性生交大片免网| 久久久国产精品一区|