如何保存要在其他运行中使用的数组或对象

时间:2014-09-29 16:38:57

标签: java file memory

我正在使用一个传感器,只要我打电话就把数据拿给我。我想在arraylist中收集1分钟的数据然后将其保存到文件或其他东西,以便我可以在不同的时间分析它。

所以我有这样的事情:

ArrayList<DataObject> data = new ArrayList<DataObject>();
public void onUpdate(DataObject d) { //being called by my sensor every second
    data.add(d);
}

我想将ArrayList数据保存到我的计算机的文件中,以便稍后将其提供给不同的程序并在那里使用它。

我该怎么做?

4 个答案:

答案 0 :(得分:1)

我认为你应该只是将值输出到文件中,并在值之间作为分隔符,然后将文件读入新程序中的数组中。要将数组放入文件中,请循环遍历数组,同时在循环播放时将每个数字附加到文件中,直到结束。

答案 1 :(得分:1)

如果您想将这些文件保存为CSV文件,它们可以轻松导出和导入,甚至可以导出到Excel(这对于进行进一步的工作或传递结果可能很有价值)。

查看OpenCSV,特别是有关写出数据的this entry in the FAQ

e.g。

 CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), ',');
 // feed in your array (or convert your data to an array)
 String[] entries = "first#second#third".split("#");
 writer.writeNext(entries);
 writer.close();

答案 2 :(得分:1)

如果其他程序也基于Java,则可以利用Java Serializable接口。这是一个教程Java - Serialization

答案 3 :(得分:1)

最好使用ObjectOutputStream来实现此目的,因为传感器的输出是整数或双精度。使用writeObject方法可以完成任务。

详细阅读链接: http://docs.oracle.com/javase/7/docs/api/java/io/ObjectOutputStream.html