StringBuilder-在csv文件中写下标题

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

标签: java csv bufferedwriter

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

我正在尝试生成我的csv文件头。但是我只能看到测试日期;秒;标题中的部分。我想查看所有设备名称。有人可以检查我的代码,尤其是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();
  }

2 个答案:

答案 0 :(得分:2)

看起来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 ==空列表

答案 1 :(得分:0)

可能你没有关闭BufferedWriter,然后仍然没有写入最后一个缓冲区。

在关闭BufferedWriter之前单独关闭文件时也会发生这种情况。然后只需关闭BufferedWriter即可。它关闭了它的底层文件。