Uses of Class java.nio.ByteBuffer (Java Platform SE 8 )
Date: 2026-03-16

## Uses of Class
java.nio.ByteBuffer

- Packages that use ByteBuffer
  Package | Description
  --- | ---
  java.lang | Provides classes that are fundamental to the design of the Java programming language.
  java.nio | Defines buffers, which are containers for data, and provides an overview of the other NIO packages.
  java.nio.channels | Defines channels, which represent connections to entities that are capable of performing I/O operations, such as files and sockets; defines selectors, for multiplexed, non-blocking I/O operations.
  java.nio.charset | Defines charsets, decoders, and encoders, for translating between bytes and Unicode characters.
  java.nio.file.attribute | Interfaces and classes providing access to file and file system attributes.
  java.security | Provides the classes and interfaces for the security framework.
  java.util | Contains the collections framework, legacy collection classes, event model, date and time facilities, internationalization, and miscellaneous utility classes (a string tokenizer, a random-number generator, and a bit array).
  java.util.zip | Provides classes for reading and writing the standard ZIP and GZIP file formats.
  javax.crypto | Provides the classes and interfaces for cryptographic operations.
  javax.net.ssl | Provides classes for the secure socket package.

- - ### Uses of ByteBuffer in java.lang

    Methods in java.lang with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `protected Class<?>` | ClassLoader.`defineClass(String name, ByteBuffer b, ProtectionDomain protectionDomain)` Converts a ``ByteBuffer`` into an instance of class `Class`, with an optional `ProtectionDomain`.

  - ### Uses of ByteBuffer in java.nio

    Subclasses of ByteBuffer in java.nio
    Modifier and Type | Class and Description
    --- | ---
    `class` | `MappedByteBuffer` A direct byte buffer whose content is a memory-mapped region of a file.

    Methods in java.nio that return ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `static ByteBuffer` | ByteBuffer.`allocate(int capacity)` Allocates a new byte buffer.
    `static ByteBuffer` | ByteBuffer.`allocateDirect(int capacity)` Allocates a new direct byte buffer.
    `abstract ByteBuffer` | ByteBuffer.`asReadOnlyBuffer()` Creates a new, read-only byte buffer that shares this buffer's content.
    `abstract ByteBuffer` | ByteBuffer.`compact()` Compacts this buffer (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`duplicate()` Creates a new byte buffer that shares this buffer's content.
    `ByteBuffer` | ByteBuffer.`get(byte[] dst)` Relative bulk get method.
    `ByteBuffer` | ByteBuffer.`get(byte[] dst, int offset, int length)` Relative bulk get method.
    `ByteBuffer` | ByteBuffer.`order(ByteOrder bo)` Modifies this buffer's byte order.
    `abstract ByteBuffer` | ByteBuffer.`put(byte b)` Relative put method (optional operation).
    `ByteBuffer` | ByteBuffer.`put(byte[] src)` Relative bulk put method (optional operation).
    `ByteBuffer` | ByteBuffer.`put(byte[] src, int offset, int length)` Relative bulk put method (optional operation).
    `ByteBuffer` | ByteBuffer.`put(ByteBuffer src)` Relative bulk put method (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`put(int index, byte b)` Absolute put method (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putChar(char value)` Relative put method for writing a char value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putChar(int index, char value)` Absolute put method for writing a char value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putDouble(double value)` Relative put method for writing a double value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putDouble(int index, double value)` Absolute put method for writing a double value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putFloat(float value)` Relative put method for writing a float value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putFloat(int index, float value)` Absolute put method for writing a float value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putInt(int value)` Relative put method for writing an int value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putInt(int index, int value)` Absolute put method for writing an int value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putLong(int index, long value)` Absolute put method for writing a long value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putLong(long value)` Relative put method for writing a long value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putShort(int index, short value)` Absolute put method for writing a short value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`putShort(short value)` Relative put method for writing a short value (optional operation).
    `abstract ByteBuffer` | ByteBuffer.`slice()` Creates a new byte buffer whose content is a shared subsequence of this buffer's content.
    `static ByteBuffer` | ByteBuffer.`wrap(byte[] array)` Wraps a byte array into a buffer.
    `static ByteBuffer` | ByteBuffer.`wrap(byte[] array, int offset, int length)` Wraps a byte array into a buffer.

    Methods in java.nio with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `int` | ByteBuffer.`compareTo(ByteBuffer that)` Compares this buffer to another.
    `ByteBuffer` | ByteBuffer.`put(ByteBuffer src)` Relative bulk put method (optional operation).

  - ### Uses of ByteBuffer in java.nio.channels

    Methods in java.nio.channels with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `abstract int` | FileChannel.`read(ByteBuffer dst)` Reads a sequence of bytes from this channel into the given buffer.
    `abstract Future<Integer>` | AsynchronousSocketChannel.`read(ByteBuffer dst)`
    `Future<Integer>` | AsynchronousByteChannel.`read(ByteBuffer dst)` Reads a sequence of bytes from this channel into the given buffer.
    `abstract int` | SocketChannel.`read(ByteBuffer dst)`
    `int` | SeekableByteChannel.`read(ByteBuffer dst)` Reads a sequence of bytes from this channel into the given buffer.
    `abstract int` | DatagramChannel.`read(ByteBuffer dst)` Reads a datagram from this channel.
    `int` | ReadableByteChannel.`read(ByteBuffer dst)` Reads a sequence of bytes from this channel into the given buffer.
    `long` | FileChannel.`read(ByteBuffer[] dsts)` Reads a sequence of bytes from this channel into the given buffers.
    `long` | ScatteringByteChannel.`read(ByteBuffer[] dsts)` Reads a sequence of bytes from this channel into the given buffers.
    `long` | SocketChannel.`read(ByteBuffer[] dsts)`
    `long` | DatagramChannel.`read(ByteBuffer[] dsts)` Reads a datagram from this channel.
    `abstract long` | FileChannel.`read(ByteBuffer[] dsts, int offset, int length)` Reads a sequence of bytes from this channel into a subsequence of the given buffers.
    `long` | ScatteringByteChannel.`read(ByteBuffer[] dsts, int offset, int length)` Reads a sequence of bytes from this channel into a subsequence of the given buffers.
    `abstract long` | SocketChannel.`read(ByteBuffer[] dsts, int offset, int length)`
    `abstract long` | DatagramChannel.`read(ByteBuffer[] dsts, int offset, int length)` Reads a datagram from this channel.
    `abstract <A> void` | AsynchronousSocketChannel.`read(ByteBuffer[] dsts, int offset, int length, long timeout, TimeUnit unit, A attachment, CompletionHandler<Long,? super A> handler)` Reads a sequence of bytes from this channel into a subsequence of the given buffers.
    `<A> void` | AsynchronousSocketChannel.`read(ByteBuffer dst, A attachment, CompletionHandler<Integer,? super A> handler)`
    `<A> void` | AsynchronousByteChannel.`read(ByteBuffer dst, A attachment, CompletionHandler<Integer,? super A> handler)` Reads a sequence of bytes from this channel into the given buffer.
    `abstract int` | FileChannel.`read(ByteBuffer dst, long position)` Reads a sequence of bytes from this channel into the given buffer, starting at the given file position.
    `abstract Future<Integer>` | AsynchronousFileChannel.`read(ByteBuffer dst, long position)` Reads a sequence of bytes from this channel into the given buffer, starting at the given file position.
    `abstract <A> void` | AsynchronousFileChannel.`read(ByteBuffer dst, long position, A attachment, CompletionHandler<Integer,? super A> handler)` Reads a sequence of bytes from this channel into the given buffer, starting at the given file position.
    `abstract <A> void` | AsynchronousSocketChannel.`read(ByteBuffer dst, long timeout, TimeUnit unit, A attachment, CompletionHandler<Integer,? super A> handler)` Reads a sequence of bytes from this channel into the given buffer.
    `abstract SocketAddress` | DatagramChannel.`receive(ByteBuffer dst)` Receives a datagram via this channel.
    `abstract int` | DatagramChannel.`send(ByteBuffer src, SocketAddress target)` Sends a datagram via this channel.
    `abstract int` | FileChannel.`write(ByteBuffer src)` Writes a sequence of bytes to this channel from the given buffer.
    `abstract Future<Integer>` | AsynchronousSocketChannel.`write(ByteBuffer src)`
    `int` | WritableByteChannel.`write(ByteBuffer src)` Writes a sequence of bytes to this channel from the given buffer.
    `Future<Integer>` | AsynchronousByteChannel.`write(ByteBuffer src)` Writes a sequence of bytes to this channel from the given buffer.
    `abstract int` | SocketChannel.`write(ByteBuffer src)`
    `int` | SeekableByteChannel.`write(ByteBuffer src)` Writes a sequence of bytes to this channel from the given buffer.
    `abstract int` | DatagramChannel.`write(ByteBuffer src)` Writes a datagram to this channel.
    `long` | FileChannel.`write(ByteBuffer[] srcs)` Writes a sequence of bytes to this channel from the given buffers.
    `long` | GatheringByteChannel.`write(ByteBuffer[] srcs)` Writes a sequence of bytes to this channel from the given buffers.
    `long` | SocketChannel.`write(ByteBuffer[] srcs)`
    `long` | DatagramChannel.`write(ByteBuffer[] srcs)` Writes a datagram to this channel.
    `abstract long` | FileChannel.`write(ByteBuffer[] srcs, int offset, int length)` Writes a sequence of bytes to this channel from a subsequence of the given buffers.
    `long` | GatheringByteChannel.`write(ByteBuffer[] srcs, int offset, int length)` Writes a sequence of bytes to this channel from a subsequence of the given buffers.
    `abstract long` | SocketChannel.`write(ByteBuffer[] srcs, int offset, int length)`
    `abstract long` | DatagramChannel.`write(ByteBuffer[] srcs, int offset, int length)` Writes a datagram to this channel.
    `abstract <A> void` | AsynchronousSocketChannel.`write(ByteBuffer[] srcs, int offset, int length, long timeout, TimeUnit unit, A attachment, CompletionHandler<Long,? super A> handler)` Writes a sequence of bytes to this channel from a subsequence of the given buffers.
    `<A> void` | AsynchronousSocketChannel.`write(ByteBuffer src, A attachment, CompletionHandler<Integer,? super A> handler)`
    `<A> void` | AsynchronousByteChannel.`write(ByteBuffer src, A attachment, CompletionHandler<Integer,? super A> handler)` Writes a sequence of bytes to this channel from the given buffer.
    `abstract int` | FileChannel.`write(ByteBuffer src, long position)` Writes a sequence of bytes to this channel from the given buffer, starting at the given file position.
    `abstract Future<Integer>` | AsynchronousFileChannel.`write(ByteBuffer src, long position)` Writes a sequence of bytes to this channel from the given buffer, starting at the given file position.
    `abstract <A> void` | AsynchronousFileChannel.`write(ByteBuffer src, long position, A attachment, CompletionHandler<Integer,? super A> handler)` Writes a sequence of bytes to this channel from the given buffer, starting at the given file position.
    `abstract <A> void` | AsynchronousSocketChannel.`write(ByteBuffer src, long timeout, TimeUnit unit, A attachment, CompletionHandler<Integer,? super A> handler)` Writes a sequence of bytes to this channel from the given buffer.

  - ### Uses of ByteBuffer in java.nio.charset

    Methods in java.nio.charset that return ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `ByteBuffer` | CharsetEncoder.`encode(CharBuffer in)` Convenience method that encodes the remaining content of a single input character buffer into a newly-allocated byte buffer.
    `ByteBuffer` | Charset.`encode(CharBuffer cb)` Convenience method that encodes Unicode characters into bytes in this charset.
    `ByteBuffer` | Charset.`encode(String str)` Convenience method that encodes a string into bytes in this charset.

    Methods in java.nio.charset with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `CharBuffer` | Charset.`decode(ByteBuffer bb)` Convenience method that decodes bytes in this charset into Unicode characters.
    `CharBuffer` | CharsetDecoder.`decode(ByteBuffer in)` Convenience method that decodes the remaining content of a single input byte buffer into a newly-allocated character buffer.
    `CoderResult` | CharsetDecoder.`decode(ByteBuffer in, CharBuffer out, boolean endOfInput)` Decodes as many bytes as possible from the given input buffer, writing the results to the given output buffer.
    `protected abstract CoderResult` | CharsetDecoder.`decodeLoop(ByteBuffer in, CharBuffer out)` Decodes one or more bytes into one or more characters.
    `CoderResult` | CharsetEncoder.`encode(CharBuffer in, ByteBuffer out, boolean endOfInput)` Encodes as many characters as possible from the given input buffer, writing the results to the given output buffer.
    `protected abstract CoderResult` | CharsetEncoder.`encodeLoop(CharBuffer in, ByteBuffer out)` Encodes one or more characters into one or more bytes.
    `CoderResult` | CharsetEncoder.`flush(ByteBuffer out)` Flushes this encoder.
    `protected CoderResult` | CharsetEncoder.`implFlush(ByteBuffer out)` Flushes this encoder.

  - ### Uses of ByteBuffer in java.nio.file.attribute

    Methods in java.nio.file.attribute with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `int` | UserDefinedFileAttributeView.`read(String name, ByteBuffer dst)` Read the value of a user-defined attribute into a buffer.
    `int` | UserDefinedFileAttributeView.`write(String name, ByteBuffer src)` Writes the value of a user-defined attribute from a buffer.

  - ### Uses of ByteBuffer in java.security

    Methods in java.security with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `protected Class<?>` | SecureClassLoader.`defineClass(String name, ByteBuffer b, CodeSource cs)` Converts a `ByteBuffer` into an instance of class `Class`, with an optional CodeSource.
    `protected void` | SignatureSpi.`engineUpdate(ByteBuffer input)` Updates the data to be signed or verified using the specified ByteBuffer.
    `protected void` | MessageDigestSpi.`engineUpdate(ByteBuffer input)` Update the digest using the specified ByteBuffer.
    `void` | Signature.`update(ByteBuffer data)` Updates the data to be signed or verified using the specified ByteBuffer.
    `void` | MessageDigest.`update(ByteBuffer input)` Update the digest using the specified ByteBuffer.

  - ### Uses of ByteBuffer in java.util

    Methods in java.util that return ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `ByteBuffer` | Base64.Decoder.`decode(ByteBuffer buffer)` Decodes all bytes from the input byte buffer using the `Base64` encoding scheme, writing the results into a newly-allocated ByteBuffer.
    `ByteBuffer` | Base64.Encoder.`encode(ByteBuffer buffer)` Encodes all remaining bytes from the specified byte buffer into a newly-allocated ByteBuffer using the `Base64` encoding scheme.

    Methods in java.util with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `ByteBuffer` | Base64.Decoder.`decode(ByteBuffer buffer)` Decodes all bytes from the input byte buffer using the `Base64` encoding scheme, writing the results into a newly-allocated ByteBuffer.
    `ByteBuffer` | Base64.Encoder.`encode(ByteBuffer buffer)` Encodes all remaining bytes from the specified byte buffer into a newly-allocated ByteBuffer using the `Base64` encoding scheme.
    `static BitSet` | BitSet.`valueOf(ByteBuffer bb)` Returns a new bit set containing all the bits in the given byte buffer between its position and limit.

  - ### Uses of ByteBuffer in java.util.zip

    Methods in java.util.zip with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `void` | Adler32.`update(ByteBuffer buffer)` Updates the checksum with the bytes from the specified buffer.
    `void` | CRC32.`update(ByteBuffer buffer)` Updates the checksum with the bytes from the specified buffer.

  - ### Uses of ByteBuffer in javax.crypto

    Methods in javax.crypto with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `int` | Cipher.`doFinal(ByteBuffer input, ByteBuffer output)` Encrypts or decrypts data in a single-part operation, or finishes a multiple-part operation.
    `protected int` | CipherSpi.`engineDoFinal(ByteBuffer input, ByteBuffer output)` Encrypts or decrypts data in a single-part operation, or finishes a multiple-part operation.
    `protected void` | MacSpi.`engineUpdate(ByteBuffer input)` Processes `input.remaining()` bytes in the ByteBuffer `input`, starting at `input.position()`.
    `protected int` | CipherSpi.`engineUpdate(ByteBuffer input, ByteBuffer output)` Continues a multiple-part encryption or decryption operation (depending on how this cipher was initialized), processing another data part.
    `protected void` | CipherSpi.`engineUpdateAAD(ByteBuffer src)` Continues a multi-part update of the Additional Authentication Data (AAD).
    `void` | Mac.`update(ByteBuffer input)` Processes `input.remaining()` bytes in the ByteBuffer `input`, starting at `input.position()`.
    `int` | Cipher.`update(ByteBuffer input, ByteBuffer output)` Continues a multiple-part encryption or decryption operation (depending on how this cipher was initialized), processing another data part.
    `void` | Cipher.`updateAAD(ByteBuffer src)` Continues a multi-part update of the Additional Authentication Data (AAD).

  - ### Uses of ByteBuffer in javax.net.ssl

    Methods in javax.net.ssl with parameters of type ByteBuffer
    Modifier and Type | Method and Description
    --- | ---
    `SSLEngineResult` | SSLEngine.`unwrap(ByteBuffer src, ByteBuffer dst)` Attempts to decode SSL/TLS network data into a plaintext application data buffer.
    `SSLEngineResult` | SSLEngine.`unwrap(ByteBuffer src, ByteBuffer[] dsts)` Attempts to decode SSL/TLS network data into a sequence of plaintext application data buffers.
    `SSLEngineResult` | SSLEngine.`unwrap(ByteBuffer src, ByteBuffer[] dsts)` Attempts to decode SSL/TLS network data into a sequence of plaintext application data buffers.
    `abstract SSLEngineResult` | SSLEngine.`unwrap(ByteBuffer src, ByteBuffer[] dsts, int offset, int length)` Attempts to decode SSL/TLS network data into a subsequence of plaintext application data buffers.
    `abstract SSLEngineResult` | SSLEngine.`unwrap(ByteBuffer src, ByteBuffer[] dsts, int offset, int length)` Attempts to decode SSL/TLS network data into a subsequence of plaintext application data buffers.
    `SSLEngineResult` | SSLEngine.`wrap(ByteBuffer[] srcs, ByteBuffer dst)` Attempts to encode plaintext bytes from a sequence of data buffers into SSL/TLS network data.
    `SSLEngineResult` | SSLEngine.`wrap(ByteBuffer[] srcs, ByteBuffer dst)` Attempts to encode plaintext bytes from a sequence of data buffers into SSL/TLS network data.
    `abstract SSLEngineResult` | SSLEngine.`wrap(ByteBuffer[] srcs, int offset, int length, ByteBuffer dst)` Attempts to encode plaintext bytes from a subsequence of data buffers into SSL/TLS network data.
    `abstract SSLEngineResult` | SSLEngine.`wrap(ByteBuffer[] srcs, int offset, int length, ByteBuffer dst)` Attempts to encode plaintext bytes from a subsequence of data buffers into SSL/TLS network data.
    `SSLEngineResult` | SSLEngine.`wrap(ByteBuffer src, ByteBuffer dst)` Attempts to encode a buffer of plaintext application data into SSL/TLS network data.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.