Uploaded image for project: 'Commons CSV'
  1. Commons CSV
  2. CSV-130

CSVFormat#withHeader doesn't work well with #printComment, add withHeaderComments(String...)

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.0
    • Fix Version/s: 1.1
    • Component/s: Printer
    • Labels:
      None

      Description

      For some applications it might be useful to add a top comment to the CSV file being printed. However, this isn't possible with #120 implemented the way it is. Here's an example:

      public class Example {
        public static void main(final String[] args) throws IOException {
          final CSVPrinter csvPrinter = CSVFormat.TDF
              .withCommentMarker('#')
              .withHeader("foo", "bar")
              .print(System.out);
      
          csvPrinter.printComment("generated by yada v1.0");
          csvPrinter.printComment("foo  some description");
          csvPrinter.printComment("bar  more here");
          csvPrinter.printRecord(42, 24);
          csvPrinter.printRecord(24, 42);
        }
      }
      
      // Outputs:
      // foo	bar
      // # generated by yada v1.0
      // # foo  some description
      // # bar  more here
      // 42	24
      // 24	42
      

      Obviously, there's a way to "fix" this: output the header in the first call to `#printRecord`, but it just doesn't feel right. What to do you think?

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              lebedev Sergei Lebedev
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: