#java #android
#java #Android
Вопрос:
Я написал этот код, чтобы попытаться сохранить, а затем прочитать объект, но он выдает ошибку StreamCorruptedException.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WHClass who = new WHClass();
who.id = 5;
who.distance = 36;
who.name = "Johnny Bravo";
try {
FileOutputStream fos = new FileOutputStream( getStorageDir("run.txt") );
ObjectOutputStream os = new ObjectOutputStream(fos);
os = new ObjectOutputStream(fos);
os.writeObject(who);
os.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),"OOOPS WHEN WRITE",Toast.LENGTH_SHORT).show();
}
/////////////////////////////////////////////
try {
FileInputStream fis = new FileInputStream( getStorageDir("run.txt") );
ObjectInputStream is = new ObjectInputStream(fis);
WHClass whoRead = (WHClass) is.readObject();
is.close();
fis.close();
Toast.makeText(getApplicationContext(),whoRead.name,Toast.LENGTH_SHORT).show();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),"OOOPS WHEN READ",Toast.LENGTH_SHORT).show();
}
}
класс:
package com.example.xmlreadwriter;
import java.io.Serializable;
public class WHClass implements Serializable {
int id;
int distance;
String name;
}
когда я запускаю его, сохранение кажется нормальным, но StreamCorruptedException при чтении… что вы думаете?
Комментарии:
1. вы проверили это javamex.com/tutorials/io/StreamCorruptedException . shtml
2. спасибо, я заставил его работать, заменив .close на .reset();
Ответ №1:
Я заставил его работать, заменив os.close на os.reset ();