我在我的应用程序中使用MPAndroidChart,我想将一个保存ArrayList在一个文件中,以备后用。这是我将其保存到内部存储中的文件的位置:
ArrayList<Entry> entries = getIntent().getParcelableArrayListExtra(getString(R.string.entries_key));
// Save chart data
FileOutputStream 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 写入文件并检索它?
我能做些什么来解决这个问题?谢谢
米脂
相关分类