Csv文件循环工作错误

时间:2016-02-18 13:17:25

标签: java loops csv

我正在尝试使用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秒。)

有人可以帮助我吗

1 个答案:

答案 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