【发布时间】:2018-04-14 15:57:59
【问题描述】:
我在尝试对 CSV 文件进行排序时遇到问题。 我需要从一个时间段中获得 10 个最大频率。 比如,从 10:43:12 开始的每次扫描,并将它们写在一行中。
要写它们我没有问题,我的问题是当我尝试分开时间段并单独计算每个时间时。
public static void writeFile(String csvFile, String newCsv) {
//Delimiter used in CSV file
String COMMA_DELIMITER = ",";
String NEW_LINE_SEPARATOR = "\n";
//CSV file header
String FILE_HEADER = "Time, ID, Lat, Lon, Alt, SSID1, MAC1, Frequncy1, Signal1,"
+ " SSID2, MAC2, Frequncy2, Signal2,"
+ " SSID3, MAC3, Frequncy3, Signal3,"
+ " SSID4, MAC4, Frequncy4, Signal4,"
+ " SSID5, MAC5, Frequncy5, Signal5,"
+ " SSID6, MAC6, Frequncy6, Signal6,"
+ " SSID7, MAC7, Frequncy7, Signal7,"
+ " SSID8, MAC8, Frequncy8, Signal8,"
+ " SSID9, MAC9, Frequncy9, Signal9,"
+ " SSID10, MAC10, Frequncy10, Signal10";
FileWriter fileWriter = null;
String line = "";
String cvsSplitBy = ",";
int t=0;
try {
fileWriter = new FileWriter(newCsv);
//Write the CSV file header
fileWriter.append(FILE_HEADER.toString());
//Add a new line separator after the header
fileWriter.append(NEW_LINE_SEPARATOR);
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
String mod=returnMod(csvFile);
br.readLine(); // this will read the first line
br.readLine();// this will read the second line
while ((line = br.readLine()) != null) {
// use comma as separator(There is 11 column)
String[] column = line.split(cvsSplitBy);
fileWriter.append(column[3]);//time
String s=column[3];
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(mod);//model
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(column[6]);//lat
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(column[7]);//lon
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(column[8]);//alt
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(column[1]);//wifi
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(column[0]);//MAC
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(column[4]);//frq
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(column[5]);//signal
fileWriter.append(NEW_LINE_SEPARATOR);
}
}
System.out.println("CSV file was created successfully !!!");
} catch (Exception e) {
System.out.println("Error in CsvFileWriter !!!");
e.printStackTrace();
} finally {
try {
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
System.out.println("Error while flushing/closing fileWriter !!!");
e.printStackTrace();
}
}
}
这段代码只是将所有数据写入一个新文件,我试图改变它以适应我的需要,但我做不到
【问题讨论】:
-
为什么是标签
url-rewriting? -
我的错.. 错过点击
-
输入文件是否按时间排序?
-
@AxelH 这就是我所做的,我将所有文件合并到一个文件中。现在我有一个文件,但不知道如何仅在每一行中计算日期时间
-
@AxelH 我对这个有点陌生,你有什么推荐的 API 吗?