我正在使用一个传感器,只要我打电话就把数据拿给我。我想在arraylist中收集1分钟的数据然后将其保存到文件或其他东西,以便我可以在不同的时间分析它。
所以我有这样的事情:
ArrayList<DataObject> data = new ArrayList<DataObject>();
public void onUpdate(DataObject d) { //being called by my sensor every second
data.add(d);
}
我想将ArrayList数据保存到我的计算机的文件中,以便稍后将其提供给不同的程序并在那里使用它。
我该怎么做?
答案 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