将CSVwriter转换为输入流

时间:2016-09-15 21:13:20

标签: csv amazon-s3 opencsv

我有以下代码,我想在csv上写一个对象列表,我已经定义了属性和项目。我想将编写器转换为输入流,因此我读取值并执行一些执行的计算。我还想将这个s3文件存储在像Amazon S3这样的数据存储中。

如何将writer转换为输入流。我看不到定义的api。我可以像CSVReader reader = new CSVReader(csvWriter)那样以某种方式阅读文件吗?

 public CSVWriter convertModelToObject(List attributes, final Class classType) throws IOException {
    CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), com.opencsv.CSVParser.DEFAULT_SEPARATOR,
            com.opencsv.CSVParser.DEFAULT_QUOTE_CHARACTER);
    BeanToCsv bean = new BeanToCsv();
    HeaderColumnNameMappingStrategy<T> mappingStrategy = new HeaderColumnNameMappingStrategy<>();
    mappingStrategy.setType(classType);
    bean.write(mappingStrategy, writer, attributes);
    return writer;

2 个答案:

答案 0 :(得分:0)

考虑使用PipedWriter替换正在使用的FileWriter,使用创建CSVReader时将使用的PipedReader创建它。 You can find an example of the PipedReader Writer here

答案 1 :(得分:-2)

是的,可以。

解决方案是使用InputStreamReader读取文件,并将该流传递给Buffered reader并逐行或根据需要读取。

您可以参考更多方法:https://www.geeksforgeeks.org/different-ways-reading-text-file-java/