【发布时间】:2019-05-23 02:49:45
【问题描述】:
我正在使用“JFreeChart”创建数据可视化程序,但在使用 BufferedReader 从 CSV 文件中读取数据时遇到问题。在 CSV 文件中,我将日期和时间存储在同一列中。我知道我必须使用 " " 函数来分隔它们,但我不知道该怎么做。
我试过到处找,但我无法找到它。我需要被推上正确的轨道。
//This is part of my Data Class
private int millis;
private int stamp;
private int light;
private double temp;
private double vcc;
private Time theTime;
private Date theDate;
//This is part of another class
public class CSVreader {
private List<Data> dataList = new ArrayList<Data>();
private String path;
public List<Data> getDataList() {
return dataList;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public void readCSV() throws IOException{
BufferedReader in = new BufferedReader (new FileReader(path));
String line = in.readLine();
while(line != null) {
Data d = new Data();
String[] splits = line.split(",");
int millis = Integer.parseInt(splits[0]);
int stamp = Integer.parseInt(splits[1]);
int light = Integer.parseInt(splits[2]);
double temp = Double.parseDouble(splits[3]);
double vcc = Double.parseDouble(splits[4]);
d.setMillis(millis);
d.setStamp(stamp);
d.setLight(light);
d.setTemp(temp);
d.setVcc(vcc);
dataList.add(d);
}
}
}
最终结果应该是所有数据都将在一个数组列表中,我可以调出这些结果并从列表中使用 JFreeChart 创建一个图表。
【问题讨论】:
-
您的代码中的问题到底出在哪里 - 您在阅读哪些列时遇到问题?共享 CSV 文件的示例行可能会有所帮助。另外,请注意您正在跳过
splits[2]- 这是故意的吗? -
这是 CSV 的示例行; 2000, 1273010255, 2010/5/4 21:57:35, 333, 78.32, 3.92
-
我无法读取日期/时间,即“2010/5/4 21:57:35”
-
private Time theTime;这是习惯吗? @A.uddin
标签: java csv arraylist bufferedreader