【问题标题】:Is it possible to read two files at once in Super CSV?是否可以在 Super CSV 中一次读取两个文件?
【发布时间】:2014-04-13 13:21:02
【问题描述】:

如标题所示,超级 CSV 可以同时读取两个文件。下面的代码显示了一个 file.csv 的示例:

public class Reading {  
    private static final String CSV_FILENAME1 = "src/test/resources/test1/customers.csv";
    public static void partialReadWithCsvMapReader() throws Exception {     
        ICsvMapReader mapReader1 = null;
        try {
            mapReader1 = new CsvMapReader(new FileReader(CSV_FILENAME1), CsvPreference.STANDARD_PREFERENCE);            
            mapReader1.getHeader(true);
            final String[] header = new String[] { "customerNo", "firstName", "lastName", null, null, null, null, null,
                null, null, "TOMEK" };
            final CellProcessor[] processors = new CellProcessor[] { new UniqueHashCode(), new NotNull(),
                new NotNull(), new NotNull(), new NotNull(), new Optional(), new Optional(), new NotNull(),
                new NotNull(), new LMinMax(0L, LMinMax.MAX_LONG), new NotNull()};           
            Map<String, Object> customerMap;
            while( (customerMap = mapReader1.read(header, processors)) != null ) {
                System.out.println(String.format("lineNo=%s, rowNo=%s, customerMap=%s", mapReader1.getLineNumber(),
                    mapReader1.getRowNumber(), customerMap));
            }
        }
        finally {
            if( mapReader1 != null ) {
                mapReader1.close();
            }
        }
    }

}

一种解决方案是声明第二个变量 CSV_FILENAME2:

private static final String CSV_FILENAME1 = "src/test/resources/test1/customers.csv";

等等,但还有其他可能吗?谢谢。

【问题讨论】:

  • “一下子”是什么意思?同时?依次?你有什么作为输入,你想要什么作为输出?

标签: java csv supercsv


【解决方案1】:

每个CsvReader 只能读取一个Reader(作为构造函数参数传递)- 换句话说,每个CsvReader 只能读取一个CSV 文件。

正如 JB Nizet 所评论的 - 您确实需要定义“立即”的含义。但无论是同时、顺序还是其他方式,您仍然需要两个 CsvMapReader 实例。

是否需要一起处理文件(例如,将 2 个 CSV 文件合并为 1 个)或者您只是在寻找一种处理多个文件的方法?

【讨论】:

  • “是否有要求将文件一起处理(例如将 2 个 CSV 文件合并为 1 个)”-> 是的,我看起来像这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
相关资源
最近更新 更多