這篇文章將為大家詳細(xì)講解有關(guān)java8中NIO緩沖區(qū)Buffer數(shù)據(jù)存儲(chǔ)的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
我們注重客戶提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站服務(wù),我們努力開(kāi)拓更好的視野,通過(guò)不懈的努力,創(chuàng)新互聯(lián)公司贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),微信小程序定制開(kāi)發(fā),網(wǎng)站開(kāi)發(fā),技術(shù)開(kāi)發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫(kù)的技術(shù)開(kāi)發(fā)工程師。
ByteBuffer,CharBuffer,ShortBuffer,IntBuffer,LongBuffer,FloatBuffer,
DoubleBuffer.
1、緩沖區(qū)在java nio中負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)。緩沖區(qū)就是數(shù)組。用于存儲(chǔ)不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)。根據(jù)數(shù)據(jù)類(lèi)型不同(boolean除外),提供了相應(yīng)類(lèi)型的緩沖區(qū)。
ByteBuffer,CharBuffer,ShortBuffer,IntBuffer,LongBuffer,FloatBuffer,
DoubleBuffer.
上述緩沖區(qū)的管理方式幾乎一致,通過(guò)allocate()獲取緩沖區(qū)。
//分配一個(gè)指定大小的緩沖區(qū)ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
2、緩沖區(qū)中的四個(gè)核心屬性:
capacity:容量,表示緩沖區(qū)中最大存儲(chǔ)數(shù)據(jù)的容量。一旦聲明不能改變。
3、limit:界限,表示緩沖區(qū)中可以操作數(shù)據(jù)的大小。(limit后所得數(shù)據(jù)不能進(jìn)行讀寫(xiě))。
4、position:位置,表示緩沖區(qū)中正在操作數(shù)據(jù)的位置。
position<=limit<=capacity
5、ByteBuffer的基本使用。
緩沖區(qū)存取數(shù)據(jù)的兩個(gè)核心方法:
put():存入數(shù)據(jù)到緩沖區(qū)
//分配一個(gè)指定大小的緩沖區(qū) ByteBuffer byteBuffer = ByteBuffer.allocate(1024); System.out.println(byteBuffer.position()); System.out.println(byteBuffer.limit());; System.out.println(byteBuffer.capacity()); //利用put方法存入數(shù)據(jù)到緩沖區(qū)中 String str = "abcde"; byteBuffer.put(str.getBytes());
6、ByteBuffer的基本使用。
緩沖區(qū)存取數(shù)據(jù)的兩個(gè)核心方法:
get():獲取緩沖區(qū)的數(shù)據(jù)
//4、利用get()讀取緩沖區(qū)的數(shù)據(jù) byte[] dst = new byte[byteBuffer.limit()]; byteBuffer.get(dst); System.out.println(new String(dst,0,dst.length));
7、調(diào)用flip()讀數(shù)據(jù)模式之后
//3、切換成讀取數(shù)據(jù)模式byteBuffer.flip();
8、調(diào)用flip()操作之后:
9、rewind()方法:可重復(fù)讀:
byteBuffer.rewind(); System.out.println("----------rewind()-------------"); System.out.println(byteBuffer.position()); System.out.println(byteBuffer.limit());; System.out.println(byteBuffer.capacity());
關(guān)于“java8中NIO緩沖區(qū)Buffer數(shù)據(jù)存儲(chǔ)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。