을주고있다 다시 객체로 파일 :(ObjectInputStream를) ObjectInput.readObject는() 나는이 클래스가 나에게 빈 개체
public static void saveData(){
ObjectOutput out;
try {
//primero comprobamos si existe el directorio, y si no, lo creamos.
File folder = new File(Environment.getExternalStorageDirectory() + "/C/");
if(!folder.exists())
folder.mkdirs();
File outFile = new File(Environment.getExternalStorageDirectory(), "/C/appSaveState.data");
out = new ObjectOutputStream(new FileOutputStream(outFile));
out.writeObject(saveState);
out.close();
} catch (Exception e) {e.printStackTrace();}
}
public static void loadData(){
ObjectInput in;
try {
File inFile = new File(Environment.getExternalStorageDirectory(), "/C/appSaveState.data");
in = new ObjectInputStream(new FileInputStream(inFile));
saveState=(SaveState) in.readObject();
in.close();
} catch (Exception e) {e.printStackTrace();}
}
나는 객체를 저장할 때마다이 내 응용 프로그램이 닫히고 난 내 응용 프로그램이 열릴 때 sdcard에 각 시간에서 개체를 읽고 그것을 잘 작동합니다. 문제는 내 애플 리케이션 (1.01)의 최신 버전을 만들 때 온다. 응용 프로그램을 시작할 때 sdcard에서 파일을 읽으려고하면 파일이 읽히지 만 객체 클래스의 모든 변수는 비어 있으며 실제로는 비어 있지 않습니다.
왜 내 코드가 제대로 작동하지 않습니까? 문제를 해결하려면 어떻게해야합니까?
첫째, 당신의 끔찍한 예외 처리를 제거하십시오. 거의'IOException'을 잡아서는 안되며,'e.printStackTrace()'가 관련 로그로 갈 것이라는 것이 분명하지 않습니다. *가? 또한,'close' 호출은'finally' 블록 내에 있어야합니다. –
나는 어떤 예외도 얻지 못하고있다. 나는 단지 빈 객체를 얻고있다. – NullPointerException
예외 처리가 주어진다면 분명히 * 통지 *겠습니까? 문제를 보여주는 짧지 만 완전한 프로그램을 제작할 수 있습니까? –