我有以下代码,我想在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;
答案 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/