偶尔会遇到使用JVM之外的保存手段的场景,例如redis。redis是一个只能保存字符串的东西,它跨平台,它的C api是hireredis,它的Java api是Jedis。想要在redis里保存java对象,只能先把java对象序列化成字符串。
Java对象序列化成String并且从String反序列化为Java对象的一个例子如下:
import java.util.Base64;
...
public class SerializingUtil {
public static String convertToBase64String(Object o) {
try{
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(o);
byte[] bytes = byteArrayOutputStream.toByteArray();
String result = Base64.getEncoder().encodeToString(bytes);
return result;
}catch (Exception e){
throw new Exception(e);
}
}
public static Object convertToObject(String byteString) {
try{
byte[] by