我在我的应用程序中使用MPAndroidChart,我想将一个保存ArrayList在一个文件中,以备后用。这是我将其保存到内部存储中的文件的位置:ArrayList<Entry> entries = getIntent().getParcelableArrayListExtra(getString(R.string.entries_key));// Save chart dataFileOutputStream out;try { out = openFileOutput("listFile", MODE_PRIVATE); ObjectOutputStream outputStream = new ObjectOutputStream(out); outputStream.writeObject(entries); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException e) { e.printStackTrace(); }}这是我尝试检索它的地方,但返回的ArrayList不包含任何数据和默认文本(“无可用图表数据”)在我的LineChart:File listFile = new File(getFilesDir(), "listFile");if(listFile.exists()) { FileInputStream inputStream = null; try { inputStream = openFileInput("listFile"); ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); // This line is evil ArrayList <Entry> entries = (ArrayList<Entry>) objectInputStream.readObject(); // Set chart properties chart = ChartUtils.setChartProperties(chart); LineDataSet lineDataSet = ChartUtils.createSet(ChartViewer.this, entries); LineData data = new LineData(lineDataSet); chart.setData(data); // Let the chart knows data has changed chart.notifyDataSetChanged(); chart.invalidate(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }}我已经仔细检查过了,我确定我正在阅读正确的文件,所以问题一定是这一行ArrayList <Entry> entries = (ArrayList<Entry>) objectInputStream.readObject();我在这里找到了从文件中读取 ArrayList 的这种方式如何将 ArrayList 写入文件并检索它?我能做些什么来解决这个问题?谢谢
2 回答
![?](http://img1.sycdn.imooc.com/545864490001b5bd02200220-100-100.jpg)
米脂
TA贡献1836条经验 获得超3个赞
只有支持 java.io.Serializable 接口的对象才能写入流
在ArrayList
实现了Serializable
接口,但它指的是Entry
哪个不类。因此,Entry
对象不会被序列化(即,不会被保存或恢复)。
添加回答
举报
0/150
提交
取消