21 package org.matsim.core.utils.misc;
23 import java.io.ByteArrayInputStream;
24 import java.io.ByteArrayOutputStream;
25 import java.io.IOException;
26 import java.io.ObjectInputStream;
27 import java.io.ObjectOutput;
28 import java.io.ObjectOutputStream;
29 import java.io.Serializable;
30 import java.nio.ByteBuffer;
47 public static void putString(
final ByteBuffer buffer,
final String
string) {
48 buffer.putInt(
string.length());
49 for (
int i = 0; i <
string.length(); i++) {
50 buffer.putChar(
string.charAt(i));
62 public static String
getString(
final ByteBuffer buffer) {
63 int length = buffer.getInt();
64 char[] chBuffer =
new char[length];
65 for (
int i = 0; i < length; i++) {
66 chBuffer[i] = buffer.getChar();
68 return new String(chBuffer);
77 public static void putObject(
final ByteBuffer buffer, Serializable o){
78 try (ByteArrayOutputStream bos =
new ByteArrayOutputStream()) {
79 try (ObjectOutput oout =
new ObjectOutputStream(bos)) {
81 byte[] laneBytes = bos.toByteArray();
82 buffer.putInt(laneBytes.length);
83 for (
int i = 0; i < laneBytes.length; i++) {
84 buffer.put(laneBytes[i]);
87 }
catch (IOException e) {
98 int length = buffer.getInt();
99 byte[] bytes =
new byte[length];
100 for (
int i = 0; i < length; i++) {
101 bytes[i] = buffer.get();
103 try (ByteArrayInputStream bis =
new ByteArrayInputStream(bytes);
104 ObjectInputStream oin =
new ObjectInputStream(bis)) {
105 return oin.readObject();
106 }
catch (IOException | ClassNotFoundException e) {
static Object getObject(ByteBuffer buffer)
static String getString(final ByteBuffer buffer)
static void putObject(final ByteBuffer buffer, Serializable o)
static void putString(final ByteBuffer buffer, final String string)