我正在使用Apache Commons中的CSVPrinter class来输出CSV文件。我想要发生的是,如果给定的字段包含任何空格,它将被封装在引号中。但是,如果它只是一长串数字或日期字符串,那么那些不需要引用。
不幸的是,QuoteMode enum似乎非常有限;它提供以下四种选择:
ALL
引用所有字段。MINIMAL
引用包含特殊字符的字段,例如分隔符,引号字符或行分隔符中的任何字符。NON_NUMERIC
引用所有非数字字段。NONE
从不引用字段。 MINIMAL
选项似乎最接近我想要做的,但由于空格字符不是行分隔符的一部分,因此不起作用。有没有办法配置CSVPrinter对象引用其中包含空格的字段?
答案 0 :(得分:0)
CSVPrinter不是那么灵活,它也是final
所以你不能覆盖打印实现。
我建议你找一个不同的csv库或查看CSVPrinter
的源代码,并根据自己的要求实现自己的版本。然而,使用空格引用字符串绝对不是CSV格式的要求。任何符合格式的实现都应该能够读取其中包含空格(而不是引用)的字符串。