【问题标题】:How do I read tsv files with Jackson csv mapper?如何使用 Jackson csv 映射器读取 tsv 文件?
【发布时间】:2017-10-24 19:55:19
【问题描述】:

我正在使用 Jackson CSV 库来读取 CSV 文件。

我们有流媒体示例from the documentation

CsvMapper mapper = new CsvMapper();
mapper.enable(CsvParser.Feature.WRAP_AS_ARRAY);
ObjectReader reader = mapper.readerFor(String[].class);
MappingIterator<String[]> values = reader.readValues("/path/to/file")

这适用于 CSV 文件。但是,我看不到如何将其配置为使用制表符而不是逗号作为字段分隔符,以便读取 TSV 文件。我可以找到列分隔符relates to the CsvSchema class 的唯一配置,但没有架构,因为我们不知道文件中有多少列。

【问题讨论】:

    标签: csv jackson jackson-dataformat-csv


    【解决方案1】:

    使用这个:

    CsvSchema  schema = mapper.schemaFor(String[].class).withColumnSeparator('\t');
    ObjectReader reader = mapper.readerFor(String[].class).with(schema);
    

    【讨论】:

    • 这不起作用。您的代码返回一个 CsvSchema 对象 - 但我需要使用映射器来读取文件,并且在这行代码之后,映射器仍然配置为查找逗号。
    • @mdarwin 如果解决方案不起作用,请不要接受正确的答案。这会给未来的用户带来不好的体验。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 2018-04-06
    • 2021-05-31
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    相关资源
    最近更新 更多