要保存到文件:使您的类可序列化
package com.yourpackage.name;
import java.io.Serializable;
public class myClass implements Serializable {
public enum counterType {
count_down,
count_up
}
public int myIntValue= 0;
}
如果您收到警告“可序列化类 X 未声明 long 类型的静态最终 serialVersionUID 字段”,您可以通过为 serialVersionUID 添加一个值来解决此问题,例如:
private static final long serialVersionUID = 1234567890abcdefg;
像往常一样声明你的变量(例如在你的主要活动中):
myClass myClassVariable = new myClass();
myClassVariable.myIntValue = 99;
现在您可以使用以下方法将数据保存到文件中:
try
{
FileOutputStream myFileOutputStream = new FileOutputStream(getFilesDir() + "file_name.ser");
ObjectOutputStream myObjectOutputStream = new ObjectOutputStream(myFileOutputStream);
myObjectOutputStream.writeObject(myClassVariable);
myObjectOutputStream.close();
}
catch (Exception e)
{
Log.e("Error when saving to file.",Log.getStackTraceString(e));
}
再次加载您的数据:
try
{
FileInputStream myFileInputStream = new FileInputStream(getFilesDir() + "file_name.ser");
ObjectInputStream myObjectInputStream = new ObjectInputStream(myFileInputStream);
readClassVariable = (myClass) myObjectInputStream.readObject();
myObjectInputStream.close();
}
catch (Exception e)
{
Log.e("Error when loading from file.",Log.getStackTraceString(e));
}
readClassVariable 现在包含您保存的类,例如readClassVariable.myIntValue 等于 99
希望对您有所帮助。欢迎评论:)
附言我需要代表,所以如果您喜欢,请不要忘记接受答案!