我有这段相对简单的 Java(适用于 Android)代码,我已经针对这个问题进行了精简。
int number = 42;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream os = new ObjectOutputStream(bos);
os.writeObject(number);
String serial = bos.toString("UTF-8");
os.close();
ByteArrayInputStream bis = new ByteArrayInputStream(serial.getBytes("UTF-8"));
ObjectInputStream is = new ObjectInputStream(bis); // <<<< Exception Here
最后一行,初始化 ObjectInputStream,抛出一个 StreamCorruptedException,我不知道为什么。
(我打算用它来将一些小对象序列化为字符串并将它们存储在 SharedPreferences 中,稍后再读回它们。但我现在只使用一个整数,因为这样可以隔离问题)