在Android Studio中进行序列化的一种常见解决方法是使用Java的Serializable接口。下面是一个示例代码:
import java.io.Serializable;
public class MyClass implements Serializable {
private String name;
private int age;
public MyClass(String name, int age) {
this.name = name;
this.age = age;
}
// 省略getter和setter方法
@Override
public String toString() {
return "MyClass{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
在上面的示例中,MyClass
类实现了Serializable
接口,并且具有name
和age
两个属性。通过实现Serializable
接口,MyClass
类的对象可以被序列化和反序列化。
要序列化MyClass
对象,可以使用以下代码:
MyClass obj = new MyClass("John", 25);
try {
FileOutputStream fos = new FileOutputStream("myclass.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
上面的代码将MyClass
对象写入名为myclass.ser
的文件中。
要反序列化MyClass
对象,可以使用以下代码:
MyClass obj = null;
try {
FileInputStream fis = new FileInputStream("myclass.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
obj = (MyClass) ois.readObject();
ois.close();
fis.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(obj);
上面的代码从名为myclass.ser
的文件中读取MyClass
对象并打印出来。
需要注意的是,序列化和反序列化的对象的类必须实现Serializable
接口,否则会抛出NotSerializableException
异常。