将类类型信息保存到文件以供以后使用

时间:2016-10-21 15:12:36

标签: java android

如您所知,在编写Android应用程序时,传递类类型非常重要。 一个简单的例子是使用Intent。

Intent i = new Intent(this, MyActivity.class);

因此,如果我可以将类类型信息保存到文件中供以后使用,例如重启后,它会在某些情况下有用。

void saveClassTypeInfo(Class<?> classType, String filename) {

String str = null;

// Some job with classType

FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(filename);
        fos.write(str.getBytes());
        fos.close();
    } catch (Exception e) {
    }
}

如果我可以像上面那样以某种方式保存,那么我将来可以将它放回到这样的意图中。

Intent i = new Intent(this, restoredClassInfoFromFile);

我如何才能完成这种工作?因为Class<?>不是一个对象,所以我根本不知道从哪里开始。

[编辑] .class也是一个对象,所以我们可以像保存对象一样保存它。

1 个答案:

答案 0 :(得分:2)

这可以使用ObjectOutputStream这里SaveState是您的自定义类

public static void saveData(SaveState instance){
ObjectOutput out;
try {
     File outFile = new File(Environment.getExternalStorageDirectory(), "appSaveState.ser");
     out = new ObjectOutputStream(new FileOutputStream(outFile));
     out.writeObject(instance);
     out.close();
 } catch (Exception e) {e.printStackTrace();}
}

public static SaveState loadData(){
 ObjectInput in;
 SaveState ss=null;
 try {
     in = new ObjectInputStream(new FileInputStream("appSaveState.ser"));       
     ss=(SaveState) in.readObject();
     in.close();
 } catch (Exception e) {e.printStackTrace();}
 return ss;
}

完整教程写入可用文件here 并从文件here

中读取对象