以下是一个简单的例子,演示如何在鸿蒙OS中使用Externalizable接口:
import ohos.utils.zson.ZSONObject;
import java.io.*;
public class MyExternalizableClass implements Externalizable {
private int intValue;
private String stringValue;
// 默认构造函数(必需)
public MyExternalizableClass() {
}
// 构造函数
public MyExternalizableClass(int intValue, String stringValue) {
this.intValue = intValue;
this.stringValue = stringValue;
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
// 将对象的状态写入输出流
out.writeInt(intValue);
out.writeUTF(stringValue);
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
// 从输入流中重构对象的状态
intValue = in.readInt();
stringValue = in.readUTF();
}
public static void main(String[] args) {
// 创建对象
MyExternalizableClass myObject = new MyExternalizableClass(42, "Hello, HarmonyOS!");
// 将对象写入文件
try {
FileOutputStream fileOutputStream = new FileOutputStream("externalizable.dat");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(myObject);
objectOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 从文件中读取对象
try {
FileInputStream fileInputStream = new FileInputStream("externalizable.dat");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
MyExternalizableClass readObject = (MyExternalizableClass) objectInputStream.readObject();
// 打印读取的对象信息
System.out.println("Read int value: " + readObject.getIntValue());
System.out.println("Read string value: " + readObject.getStringValue());
// 关闭流
objectInputStream.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
// Getter和Setter方法
public int getIntValue() {
return intValue;
}
public void setIntValue(int intValue) {
this.intValue = intValue;
}
public String getStringValue() {
return stringValue;
}
public void setStringValue(String stringValue) {
this.stringValue = stringValue;
}
}
在这个例子中,MyExternalizableClass实现了Externalizable接口,定义了writeExternal和readExternal方法。然后,我们创建一个对象并将其写入文件,接着从文件中读取对象,并打印其属性值。
请注意,鸿蒙OS中可能对一些标准Java类库的API进行了定制或替代,因此在实际开发中,建议查阅鸿蒙OS的文档以获取最准确的信息。
转载请注明出处:http://www.zyzy.cn/article/detail/3039/鸿蒙OS