
com.star.io.serializer.KryoSerializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of utils Show documentation
Show all versions of utils Show documentation
some utility class for java develop
The newest version!
package com.star.io.serializer;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.star.io.FastByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import java.util.Objects;
/**
* kryo序列化实现
*
* @author j2cache
*/
public class KryoSerializer implements Serializer {
/**
* kryo做成threadlocal的
*/
private static final ThreadLocal KRYOS = ThreadLocal.withInitial(Kryo::new);
@Override
public String name() {
return "kryo";
}
@Override
public byte[] serialize(Object obj) {
final FastByteArrayOutputStream baos = new FastByteArrayOutputStream();
try (Output output = new Output(baos)) {
KRYOS.get().writeClassAndObject(output, obj);
output.flush();
return baos.toByteArray();
}
}
@Override
public Object deserialize(byte[] bits) {
try (Input ois = new Input(new ByteArrayInputStream(Objects.requireNonNull(bits)))) {
return KRYOS.get().readClassAndObject(ois);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy