gpt4 book ai didi

java - 将对象写入内部存储

转载 作者:行者123 更新时间:2023-12-01 12:12:15 24 4
gpt4 key购买 nike

我已成功将字符串写入和读取到 Android 应用程序内部存储上的文件,但我想写入一个对象,但它不起作用。我读过 Oracle 关于此事的文档,其中说要通过流传输对象字段,对象需要实现可序列化或其他功能。我向 cat 类添加了导入可序列化并实现了可序列化,但它引发了错误。没有它“oos.writeObject(myCat);”也会导致错误。我很困惑。

以下代码存在于与layout.xml 绑定(bind)的java Activity 类中。用户按下按钮即可保存或加载对象。如前所述,写入和读取字符串似乎工作正常,但对象则不然。

   private void writeFile()
{
try
{
String myFile = "myFile";
cat myCat = new cat("Harry", "blue", 11);

FileOutputStream fos = openFileOutput(myFile,MODE_WORLD_READABLE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(myCat);
oos.close();
fos.close();

Toast.makeText(getBaseContext(),"object saved",Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
e.printStackTrace();
}
}

   private void readFile()
{
try
{
String myFile = "myFile";

FileInputStream fis = openFileInput(myFile);
ObjectInputStream ois = new ObjectInputStream(fis);
cat yourCat = (cat) ois.readObject();
ois.close();
fis.close();

String output = yourCat.name + " the " + yourCat.colour + " cat";
Toast.makeText(getBaseContext(),output,Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{

}
}

猫对象

public class cat
{
public String name = "";
public String colour = "black";
public int age = 0;

public cat(String pName, String pColour, int pAge)
{
name = pName;
colour = pColour;
age = pAge;
}
}

最佳答案

向 cat 类添加“实现可序列化”是可行的。我不知道为什么它一开始就没有。抱歉打扰了。

关于java - 将对象写入内部存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27205213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com