Here you can find the source of readObject(ByteBuffer byteBuffer)
public static Serializable readObject(ByteBuffer byteBuffer) throws IOException, ClassNotFoundException
//package com.java2s; /*/*www . j a v a 2 s .c o m*/ * Copyright (c) 2017-2030, Sven Augustus (svenaugustus@outlook.com). * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.Serializable; import java.nio.ByteBuffer; public class Main { public static Serializable readObject(ByteBuffer byteBuffer) throws IOException, ClassNotFoundException { ByteArrayInputStream bis = null; ObjectInputStream ois = null; Serializable object = null; try { byte[] bytes = readToBytes(byteBuffer); //System.out.println(printByteArray(bytes)); bis = new ByteArrayInputStream(bytes); ois = new ObjectInputStream(new BufferedInputStream(bis)); object = (Serializable) ois.readObject(); } finally { if (ois != null) { ois.close(); } } return object; } public static byte[] readToBytes(ByteBuffer byteBuffer) { byteBuffer.flip(); // Retrieve bytes between the position and limit // (see Putting Bytes into a ByteBuffer) byte[] bytes = new byte[byteBuffer.remaining()]; // transfer bytes from this buffer into the given destination array byteBuffer.get(bytes, 0, bytes.length); byteBuffer.clear(); return bytes; } }