android - 如何从文件中检索 MPAndroidChart ArrayList

我在我的应用程序中使用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 写入文件并检索它?


我能做些什么来解决这个问题?谢谢


慕田峪7331174
浏览 176回答 2
2回答

米脂

ObjectOutputStream 的文档说:只有支持 java.io.Serializable 接口的对象才能写入流在ArrayList实现了Serializable接口,但它指的是Entry哪个不类。因此,Entry对象不会被序列化(即,不会被保存或恢复)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java