我正在尝试使用BufferedWriter在csv文件中编写测试结果。 WAF5-H的测试持续时间为2秒。和WAF6-L是5秒。 我的输出文件是:
Thu Feb 18 14:01:07 CET 2016;0;WAF5-H;
WAF5-H;
Thu Feb 18 14:01:08 CET 2016;0;WAF5-H;
WAF5-H;
Thu Feb 18 14:01:09 CET 2016;0;WAF5-H;
WAF5-H;
我期待:
Thu Feb 18 14:01:07 CET 2016;0;WAF5-H;
Thu Feb 18 14:01:08 CET 2016;1;WAF5-H;
Thu Feb 18 14:01:08 CET 2016;2;WAF5-H;
直到测试结束,然后下一个工作将开始。
for (int i = 0; i < convertedDifference; i++) {
for (Job currentJob : NEHCalculator.addNewJobInitializeList()) {
int testDevice = (DeviceGroups.DeviceAList.size() + DeviceGroups.DeviceBList.size()
+ DeviceGroups.DeviceCList.size() + DeviceGroups.DeviceDList.size());
int times = (int) ((convertedDifference / currentJob.getInterval()) * testDevice);
for (int t = 0; t < times; t++) {
// until end of the test date.
cal.add(Calendar.SECOND, 1);
beginDate.getTime();
// write the test date
bufferedWriter.write(String.valueOf(cal.getTime()));
bufferedWriter.write(';');
// write the test total second begin with 0.
bufferedWriter.write(String.valueOf(i));
bufferedWriter.write(';');
double j = 0;
for (j = 0; j < currentJob.getNeededTestTime(); j++) {
bufferedWriter.write(currentJob.getJobname());
bufferedWriter.write(';');
bufferedWriter.newLine();
}
}
i++;
}
}
bufferedWriter.close();// Always close files.
第一个for循环解释执行测试直到测试结束时间。 ( 实际输出违反了这一点,因为它写下了0次,所以它 将持续到13442年......通常我预计会看到3600行 在我的csv文件中。
每个循环的第二个循环获得所选的作业列表。
第三个for循环说明将发生多少次测试。 ( 一世 进入1小时的测试时间和测试时间将每15个 分钟和WAF 5H测试4台设备。所以我想要4 * 4 * 2 = 32次 在csv文件上查看WAF5-H。
Last for循环解释了所需的时间 测试每台所需的机器。 (对于WAF 5-H 2秒。)
有人可以帮助我吗
答案 0 :(得分:1)
试试这个:在你的第三个循环中,为每次迭代插入一个新行
for (int i = 0; i < convertedDifference; i++) {
for (Job currentJob : NEHCalculator.addNewJobInitializeList()) {
int testDevice = (DeviceGroups.DeviceAList.size()
+ DeviceGroups.DeviceBList.size()
+ DeviceGroups.DeviceCList.size()
+ DeviceGroups.DeviceDList.size());
int times = (int) ((convertedDifference / currentJob.getInterval()) * testDevice);
for (int t = 0; t < times; t++) {
// until end of the test date.
cal.add(Calendar.SECOND, 1);
beginDate.getTime();
// write the test date
bufferedWriter.write(String.valueOf(cal.getTime() +
';' + String.valueOf(i) + ';'));
//double j = 0; no need to declare double var
for (int j = 0; j < currentJob.getNeededTestTime(); j++) {
bufferedWriter.write(currentJob.getJobname()+ ';');
////////////////////////////////////
/// issue
////////////////////////////////////
// bufferedWriter.newLine();
}
}
}// end of currentjob loop
bufferedWriter.newLine(); // ok hear
}// end first for loop