From 1626a11a69743a19f383fee52b89c13123a2030f Mon Sep 17 00:00:00 2001 From: Azhwani Date: Fri, 10 Apr 2026 21:39:46 +0200 Subject: [PATCH] BAEL-8276: Convert Between ByteBuffer and Byte Array in Java --- ...teBufferToByteArrayConversionUnitTest.java | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 core-java-modules/core-java-nio-3/src/test/java/com/baeldung/bytebuffer/ByteBufferToByteArrayConversionUnitTest.java diff --git a/core-java-modules/core-java-nio-3/src/test/java/com/baeldung/bytebuffer/ByteBufferToByteArrayConversionUnitTest.java b/core-java-modules/core-java-nio-3/src/test/java/com/baeldung/bytebuffer/ByteBufferToByteArrayConversionUnitTest.java new file mode 100644 index 000000000000..ccae4328f024 --- /dev/null +++ b/core-java-modules/core-java-nio-3/src/test/java/com/baeldung/bytebuffer/ByteBufferToByteArrayConversionUnitTest.java @@ -0,0 +1,77 @@ +package com.baeldung.bytebuffer; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertThrows; + +import java.nio.ByteBuffer; +import java.nio.ReadOnlyBufferException; + +import org.junit.jupiter.api.Test; + +class ByteBufferToByteArrayConversionUnitTest { + + @Test + void givenByteBuffer_whenUsingArrayMethod_thenConvertToByteArray() { + byte[] givenBytes = {1, 6, 3}; + ByteBuffer buffer = ByteBuffer.wrap(givenBytes); + byte[] bytes = buffer.array(); + + assertArrayEquals(bytes, givenBytes); + } + + @Test + void givenReadOnlyBuffer_whenCallingArray_thenThrowException() { + ByteBuffer buffer = ByteBuffer.wrap(new byte[] {1, 2, 3}); + ByteBuffer readOnlyBuffer = buffer.asReadOnlyBuffer(); + + assertThrows(ReadOnlyBufferException.class, readOnlyBuffer::array); + } + + @Test + void givenByteBuffer_whenUsingGetMethod_thenConvertToByteArray() { + byte[] givenBytes = {5, 4, 2}; + ByteBuffer buffer = ByteBuffer.wrap(givenBytes); + byte[] bytes = new byte[buffer.remaining()]; + buffer.get(bytes); + + assertArrayEquals(bytes, givenBytes); + } + + @Test + void givenByteBuffer_whenUsingGetWithParamsMethod_thenConvertToByteArray() { + byte[] givenBytes = {5, 4, 2, 7}; + ByteBuffer buffer = ByteBuffer.wrap(givenBytes); + byte[] bytes = new byte[2]; + buffer.get(bytes, 0, 2); + + assertArrayEquals(bytes, new byte[] {5, 4}); + } + + @Test + void givenByteArray_whenUsingWrapMethod_thenConvertToByteBuffer() { + byte[] givenBytes = {1, 2, 3}; + ByteBuffer buffer = ByteBuffer.wrap(givenBytes); + + assertArrayEquals(buffer.array(), givenBytes); + } + + @Test + void givenByteArray_whenUsingWrapWithParamsMethod_thenConvertToByteBuffer() { + byte[] givenBytes = {1, 2, 3, 7, 8}; + ByteBuffer buffer = ByteBuffer.wrap(givenBytes, 1, 2); + + byte[] actualBytes = new byte[buffer.remaining()]; + buffer.get(actualBytes); + + assertArrayEquals(actualBytes, new byte[] {2, 3}); + } + + @Test + void givenByteArray_whenUsingAllocateAndPutMethods_thenConvertToByteBuffer() { + byte[] givenBytes = {1, 9, 7}; + ByteBuffer buffer = ByteBuffer.allocate(givenBytes.length); + buffer.put(givenBytes); + + assertArrayEquals(buffer.array(), givenBytes); + } +}