亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

java學(xué)習(xí)筆記(三十七)java新IO之Buffer

系統(tǒng) 2124 0
java學(xué)習(xí)筆記(三十七)java新IO之Buffer

java新IO之Buffer

1、什么是java新IO

在jdk1.4之后呢,為了提高IO操作的性能,提供了一個(gè)新的開(kāi)發(fā)包,NIO,此

包定義在java.nio.*中。
在java中,已有的IO操作大部分都屬于阻塞的操作,例如,鍵盤(pán)輸入數(shù)據(jù),

必須一直等待用戶(hù)輸入數(shù)據(jù),否則程序不能繼續(xù)執(zhí)行。另外,還有socket程

序中服務(wù)器必須通過(guò)accept()方法等待用戶(hù)連接,這就造成了大量的系統(tǒng)

資源的浪費(fèi)。所以呢在jdk1.4之后引入了新IO,在整個(gè)新IO的操作基本上都

是使用緩沖區(qū)來(lái)完成的。


2、Buffer-->緩沖區(qū)


在基本io操作中,所有的操作都是以流的形式完成的,但是在新IO中所有的

操作都是要使用到Buffer,所有的讀寫(xiě)操作都是通過(guò)緩沖區(qū)完成的。

2、1 Buffer:

是一個(gè)線性的,有序的數(shù)據(jù)集,只能容納某種特定類(lèi)型數(shù)據(jù)。


在jdk api 1.6中是這樣定義的:

public abstract class Bufferextends Object一個(gè)用于特定基本類(lèi)型數(shù)據(jù)

的容器。

緩沖區(qū)是特定基本類(lèi)型元素的線性有限序列。除內(nèi)容外,緩沖區(qū)的基本屬性

還包括容量、限制和位置:

緩沖區(qū)的容量 是它所包含的元素的數(shù)量。緩沖區(qū)的容量不能為負(fù)并且不能更

改。

緩沖區(qū)的限制 是第一個(gè)不應(yīng)該讀取或?qū)懭氲脑氐乃饕>彌_區(qū)的限制不能

為負(fù),并且不能大于其容量。

緩沖區(qū)的位置 是下一個(gè)要讀取或?qū)懭氲脑氐乃饕>彌_區(qū)的位置不能為負(fù)

,并且不能大于其限制。

對(duì)于每個(gè)非 boolean 基本類(lèi)型,此類(lèi)都有一個(gè)子類(lèi)與之對(duì)應(yīng)。

2、2 Buffer的清除、反轉(zhuǎn)和重繞


除了訪問(wèn)位置、限制、容量值的方法以及做標(biāo)記和重置的方法外,此類(lèi)還定

義了以下可對(duì)緩沖區(qū)進(jìn)行的操作:

clear() 使緩沖區(qū)為一系列新的通道讀取或相對(duì)放置 操作做好準(zhǔn)備:它將限

制設(shè)置為容量大小,將位置設(shè)置為 0。

flip() 使緩沖區(qū)為一系列新的通道寫(xiě)入或相對(duì)獲取 操作做好準(zhǔn)備:它將限

制設(shè)置為當(dāng)前位置,然后將位置設(shè)置為 0。

rewind() 使緩沖區(qū)為重新讀取已包含的數(shù)據(jù)做好準(zhǔn)備:它使限制保持不變,

將位置設(shè)置為 0


2、3 線程安全


多個(gè)當(dāng)前線程使用緩沖區(qū)是不安全的。如果一個(gè)緩沖區(qū)由不止一個(gè)線程使用

,則應(yīng)該通過(guò)適當(dāng)?shù)耐絹?lái)控制對(duì)該緩沖區(qū)的訪問(wèn)。


2、4 調(diào)用鏈


指定此類(lèi)中的方法返回調(diào)用它們的緩沖區(qū)(否則它們不會(huì)返回任何值)。此

操作允許將方法調(diào)用組成一個(gè)鏈;例如,語(yǔ)句序列

b.flip();
b.position(23);
b.limit(42);可以由以下更緊湊的一個(gè)語(yǔ)句代替
b.flip().position(23).limit(42);


3、Buffer中的方法

3、1 position方法

@ :public final int position()返回此緩沖區(qū)的位置。

@ :public final Buffer position(int newPosition)

設(shè)置此緩沖區(qū)的位置。如果標(biāo)記已定義且大于新的位置,則丟棄該標(biāo)記。


3、2 limit方法

@ :public final int limit()返回此緩沖區(qū)的限制。

@ :public final Buffer limit(int newLimit)

設(shè)置此緩沖區(qū)的限制。如果位置大于新的限制,則將它設(shè)置為新限制。如果

標(biāo)記已定義且大于新限制,則丟棄該標(biāo)記。

3、3 capacity 容量

public final int capacity() 返回此緩沖區(qū)的容量。



java學(xué)習(xí)筆記(三十七)java新IO之Buffer


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产18到20岁美女毛片 | 久久久精品久久久久三级 | 九九九热在线精品免费全部 | 狠狠色综合色综合网络 | 中文字幕欧美日韩在线不卡 | 99热亚洲| 欧美日韩亚洲无线码在线观看 | 最新中文字幕一区二区乱码 | 欧美亚洲精品小说一区二三区 | 精品精品国产欧美在线观看 | 亚洲国产二区三区久久 | 成人久久18免费游戏网站 | 亚洲国产精品线观看不卡 | 久久99热这里只有精品免费看 | 欧美激情特级黄aa毛片 | 奇米影视第四色在线 | 99免费视频 | 久久精品国产免费看久久精品 | 国产一区二区亚洲精品天堂 | 欧美久久精品一级c片片 | 一区欧美| 久久久久久久久久久观看 | 2020国产成人精品视频人 | 国产一级精品视频 | 免费看国产精品麻豆 | 中文字幕三级在线不卡 | 久草手机视频 | 国产日韩欧美二区 | 毛片a级放荡的护士hd | 日韩一级特黄毛片在线看 | 国产 色 | 欧美激情一区二区 | 欧美xvideosexo另类 | 久久久久久国产视频 | a视频在线 | 久久精品视频免费 | 日本成人不卡 | 久久99精品久久久久久噜噜丰满 | 欧美日韩综合在线视频免费看 | 涩涩伊人| 国产激情视频趣趣在线观看的 |