嗨我有一个简单的可序列化问题
这是我全班同学。没有吸气剂,安装者和尝试&捕获
public class myTrip implements Serializable {
String NazovTripu;
int den, mesiac, rok;
String Mesto;
String filename="prve.dat";
public String getFilename() {
return filename;
}
public void Serializuj(Context context){
FileOutputStream fos = null;
fos = context.openFileOutput(filename, Context.MODE_PRIVATE);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(this);
os.close();
}
public myTrip DeSerializuj(Context context) {
FileInputStream fis = null;
fis = context.openFileInput(filename);
ObjectInputStream is = new ObjectInputStream(fis);
myTrip mojtrip = (myTrip) is.readObject();
is.close();
fis.close();
return mojtrip;
return null;
}
public void DeSerializuj2(Context context) {
FileInputStream fis = null;
fis = context.openFileInput(filename);
ObjectInputStream is = new ObjectInputStream(fis);
myTrip simpleClass = (myTrip) is.readObject();
is.close();
fis.close();
}
我这里有两个变种反序列化但没有工作,我不知道哪里有问题。如果序列化或反序列化,请帮帮我:)
我在一个活动中使用它
myTrip prvy= new myTrip();
...
prvy.Serializuj(this);
此代码在OnCreate方法中的其他活动
myTrip prvy= new myTrip();
...
prvy.DeSerializuj(this);
应用程序不会崩溃,但是varianles没有值。
答案 0 :(得分:0)
这里有很好的序列化和反序列化代码..
public void Serializuj( myTrip serTrip){
FileOutputStream fos = null;
try {
File file = new File(getApplicationContext().getFilesDir(), "data.dat");
FileOutputStream fo = new FileOutputStream(file);
ObjectOutputStream ou = new ObjectOutputStream(fo);
ou.writeObject(serTrip);
ou.close();
fo.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public myTrip DeSerializuj() {
myTrip prvy = null;
try {
File file = new File(getApplication().getFilesDir(), "data.dat");
FileInputStream fi = new FileInputStream(file);
ObjectInputStream oi = new ObjectInputStream(fi);
prvy = (myTrip) oi.readObject();
oi.close();
fi.close();
} catch (Exception e) {
e.printStackTrace();
}
return prvy;
}