StringBuilder- 在 csv 文件中写下 Header

StringBuilder- Write down Header in csv file

我正在使用 BufferedWriter 将数据写入我的 csv 文件。

我正在尝试生成我的 header 的 csv 文件。但是我只能看到测试日期;秒; header.I 中的部分要查看所有设备名称。有人可以检查我的代码,尤其是 printDeviceNames 方法。 我不明白这个问题。

String FILE_HEADER = "Testing Date;Seconds;" + printDeviceNames(DeviceGroups.choosenDevice);

  bufferedWriter.write(FILE_HEADER);

  bufferedWriter.close();// Always close files.

 private static String printDeviceNames(List<String> choosenDevice) {

    StringBuilder stringBuilder = new StringBuilder();

    for (String deviceName : choosenDevice) {
      stringBuilder.append(deviceName);
      stringBuilder.append(";");
    }

    return stringBuilder.toString();
  }

可能你没有关闭BufferedWriter,那么最后一个buffer还没有写入

如果在关闭 BufferedWriter 之前单独关闭文件,也会发生这种情况。然后只需关闭 BufferedWriter。它关闭其基础文件。

看起来 DeviceGroups.choosenDevice 有空列表,使用下面的代码检查问题

System.out.println("DeviceGroups.choosenDevice " + DeviceGroups.choosenDevice);
String FILE_HEADER = "Testing Date;Seconds;" + printDeviceNames(DeviceGroups.choosenDevice);
System.out.println("FILE_HEADER " + FILE_HEADER);

  bufferedWriter.write(FILE_HEADER);

 private static String printDeviceNames(List<String> choosenDevice) {

    StringBuilder stringBuilder = new StringBuilder();

    for (String deviceName : choosenDevice) {
      stringBuilder.append(deviceName);
      stringBuilder.append(";");
    }

    return stringBuilder.toString();
  }

System.out.println 向您展示了什么?看起来是显示 DeviceGroups.choosenDevice == 空列表