Java中Buffer緩沖區(qū)的ByteBuffer類詳解
ByteBuffer類
ByteBuffer類內(nèi)部封裝了一個byte[]數(shù)組,并可以通過一些方法對這個數(shù)組進行操作。
創(chuàng)建ByteBuffer對象的三種方式
//方式一:在堆中創(chuàng)建緩沖區(qū): public static ByteBuffer allocate(intcapacity) // 方式二: 在系統(tǒng)內(nèi)存創(chuàng)建緩沖區(qū): public static ByteBuffer allocatDirect(int capacity) // 方式三:通過數(shù)組創(chuàng)建緩沖區(qū): public static ByteBuffer wrap(byte[] arr)
添加數(shù)據(jù)-put
public ByteBuffer put(byte b); //向當前可用位置添加數(shù)據(jù)。 public ByteBuffer put(byte[] byteArray); // 向當前可用位置添加一個byte[]數(shù)組 public ByteBuffer put(byte[] byteArray,int offset,int len); // 添加一個byte[]數(shù)組的一部分
容量-capacity
Buffer的容量(capacity)是指:Buffer所能夠包含的元素的最大數(shù)量。定義了Buffer后,容量是不可變的
public final int capacity();//獲取緩沖數(shù)組的容量
限制-limit
限制limit是指:第一個不應(yīng)該讀取或?qū)懭朐氐膇ndex索引。緩沖區(qū)的限制(limit)不能為負,并且不能大于容量。 有兩個相關(guān)方法:
public int limit()://獲取此緩沖區(qū)的限制。 public Buffer limit(int newLimit)://設(shè)置此緩沖區(qū)的限制
位置-position
位置position是指:當前可寫入的索引。位置不能小于0,并且不能大于"限制"。
結(jié)論: 操作緩沖數(shù)組,其實就是操作position到limit之間位置上的元素 有兩個相關(guān)方法:
public int position()://獲取當前可寫入位置索引。 public Buffer position(int p)://更改當前可寫入位置索引。
標記-mark
標記mark是指:當調(diào)用緩沖區(qū)的reset()方法時,會將緩沖區(qū)的position位置重置為該標記的索引。
相關(guān)方法:
public Buffer mark();//設(shè)置此緩沖區(qū)的標記為當前的position位置。 public Buffer reset();//將此緩沖區(qū)的位置重置為以前標記的位置。
其它方法
public Buffer clear();//還原緩沖區(qū)的狀態(tài)。
- 將position設(shè)置為:0
- 將限制limit設(shè)置為容量capacity;
- 丟棄標記mark。
public Buffer flip();//縮小limit的范圍。
- 將limit設(shè)置為當前position位置;
- 將當前position位置設(shè)置為0;
- 丟棄標記
到此這篇關(guān)于Java中Buffer緩沖區(qū)的ByteBuffer類詳解的文章就介紹到這了,更多相關(guān)Java的ByteBuffer類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot集成PostgreSQL并設(shè)置最大連接數(shù)
本文主要介紹了SpringBoot集成PostgreSQL并設(shè)置最大連接數(shù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
SpringBoot實現(xiàn)隱式參數(shù)注入的完整指南
這篇文章主要為大家詳細介紹了SpringBoot實現(xiàn)隱式參數(shù)注入的相關(guān)方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-11-11
使用Java實現(xiàn)Excel轉(zhuǎn)PDF的示例詳解
在實際的開發(fā)過程中,我們常常會遇到需要將 Excel 文件轉(zhuǎn)換為 PDF 文件的需求,本文為大家介紹一種Java中的常見實現(xiàn)方式,需要的可以參考一下2025-02-02

