我从内部存储中收到一个 byte[],但现在我不知道如何将其转换为我的 ArrayList。
我指的是这篇文章。 -->>THIS<<--
代码 fragment :
ArrayList<KFZInfo> toReturn = null;
FileInputStream fis;
try {
fis = openFileInput("kfzList");
ObjectInputStream oi = new ObjectInputStream(fis);
toReturn = (ArrayList<KFZInfo>) oi.readObject();
oi.close();
} catch (FileNotFoundException e) {
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在toReturn = (ArrayList<KFZInfo>) oi.readObject();
它抛出一个错误,内容为: java.lang.ClassCastException: byte[] cannot be cast to java.utio.ArrayList
这就是我在内部存储上写入的方式:
try {
FileOutputStream fos = openFileOutput("kfzList", Context.MODE_PRIVATE);
ObjectOutputStream oo = new ObjectOutputStream(fos);
oo.writeObject(listKfzInfo.toString().getBytes());
oo.flush();
oo.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
如何解决这个问题?
最佳答案
改变
oo.writeObject(listKfzInfo.toString().getBytes());
与
oo.writeObject(listKfzInfo);
我假设 listKfzInfo 是 ArrayList<KFZInfo>
那KFZInfo implements Serializable
并且 KFZInfo
内的所有字段实现Serializable
关于java - 如何将 byte[] 转换为 ArrayList<CustomObjec>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20093431/