You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Emmanuel Bourg (JIRA)" <ji...@apache.org> on 2014/09/01 13:34:20 UTC

[jira] [Commented] (CSV-130) CSVFormat#withHeader doesn't work well with #printComment

    [ https://issues.apache.org/jira/browse/CSV-130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14117332#comment-14117332 ] 

Emmanuel Bourg commented on CSV-130:
------------------------------------

On the other hand, the first comment could be related to the first record, and printing the header just before the first record would still be wrong (but this is probably a less common case than a comment at the top of the file). Maybe the header should be printed explicitly with a {{printHeader()}} method.

> CSVFormat#withHeader doesn't work well with #printComment
> ---------------------------------------------------------
>
>                 Key: CSV-130
>                 URL: https://issues.apache.org/jira/browse/CSV-130
>             Project: Commons CSV
>          Issue Type: Improvement
>          Components: Printer
>    Affects Versions: 1.0
>            Reporter: Sergei Lebedev
>            Priority: Minor
>
> 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:
> {code}
> 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
> {code}
> 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?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)