1. 程式人生 > 其它 >JavaSE:NIO - Buffer緩衝區概述 & ByteBuffer的建立方式

JavaSE:NIO - Buffer緩衝區概述 & ByteBuffer的建立方式

1.  Buffer緩衝區概述

    <1>作用:緩衝區,用來存放具體要被傳輸的資料,比如檔案、socket等。

       在NIO中,資料被裝入Buffer後,再通過通道(Channel)進行傳輸

    <2>Buffer就是一個數組,用來儲存不同資料型別的資料

      在 NIO中,所有的緩衝區型別,都繼承於抽象類 Buffer, 最常用的就是 ByteBuffer。

對於 Java中的基本型別,基本都有一個具體的 Buffer型別與之對應,它們之間的繼承關係如下:

      ByteBuffer:(儲存)位元組資料(到緩衝區)

      ShortBuffer:(儲存)字串資料(到緩衝區)

      CharBuffer:(儲存)字元資料(到緩衝區)

       IntBuffer:  (儲存)整數資料(到緩衝區)

      LongBuffer: (儲存)長整型資料(到緩衝區)

      DoubleBuffer: (儲存) 小數 (到緩衝區)

       FloatBuffer:  (儲存)小數 (到緩衝區)

      對於Java中的基本資料型別,都有一個Buffer型別與之相對應,最常用的自然是ByteBuffer類 (二進位制資料)

2.  ByteBuffer的建立方式

      程式碼示例

        <1>  在堆中建立緩衝區:allocate(int capacity)

        <2>  在系統記憶體建立緩衝區:allocateDirect(int capacity)

        <3>  通過普通陣列建立緩衝區:wrap(byte[] arr)

import java.nio.ByteBuffer;

public class Demo01Buffer建立方式 {

    public static void main(String[] args) {
        
        // 在堆中建立緩衝區: allocate (int capacity)
ByteBuffer buffer1 = ByteBuffer.allocate(10); // 在系統記憶體建立緩衝區: allocateDirect(int capacity) ByteBuffer buffer2 = ByteBuffer.allocateDirect(10); // 通過普通陣列,建立緩衝區: wrap(byte[] arr) byte[] arr = {97,98,99}; ByteBuffer buffer3 = ByteBuffer.wrap(arr); } }