// 示例代码:将字符串转为对象
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class StringToObjectExample {
// 定义一个简单的可序列化的类
public static class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
// 将对象转换为字符串
public static String objectToString(Serializable obj) throws Exception {
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos)) {
oos.writeObject(obj);
return baos.toString("ISO-8859-1");
}
}
// 将字符串转换为对象
public static Object stringToObject(String str) throws Exception {
try (ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes("ISO-8859-1"));
ObjectInputStream ois = new ObjectInputStream(bais)) {
return ois.readObject();
}
}
public static void main(String[] args) {
try {
// 创建一个对象
Person person = new Person("Alice", 30);
// 将对象转换为字符串
String serializedString = objectToString(person);
System.out.println("Serialized String: " + serializedString);
// 将字符串转换回对象
Person deserializedPerson = (Person) stringToObject(serializedString);
System.out.println("Deserialized Object: " + deserializedPerson);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Person 类实现了 Serializable 接口,以便它可以被序列化和反序列化。ByteArrayOutputStream 和 ObjectOutputStream 来序列化对象,并将其编码为字符串。ByteArrayInputStream 和 ObjectInputStream 来反序列化字符串并恢复对象。Person 对象,将其序列化为字符串,再从字符串中反序列化回对象。这种方式可以实现将 Java 对象与字符串之间的相互转换。
下一篇:java void
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站