我使用的是OpenCsv,new CSVWriter()
方法将Writer作为参数。
我尝试实现的是避免写入文件系统,而是返回一个InputStream
。我不知道如何去做。不太熟悉Streams
,我也使用JAVA 7
。
我是否可以让writeValues方法返回一个InputStream,并避免将输出写入文件系统。
这是我的工作实现:
private static void writeValues(String[][] cellValues) throws IOException {
CSVWriter writer = new CSVWriter(new FileWriter("/tmp/myfile.csv"));
for(String[] row : cellValues) {
writer.writeNext(row);
}
writer.close();
}
这就是我想要实现的。如何转换上述方法,以避免使用FileWriter。
private static InputStream writeValues(String[][] cellValues) throws IOException {
InputStream inputStream = ?;
CSVWriter writer = new CSVWriter(?);
for(String[] row : cellValues) {
writer.writeNext(row);
}
writer.close();
return inputStream;
}
4条答案
按热度按时间dldeef671#
将Bean转换为字节数组的示例实现:
xv8emn3q2#
写
OutpuStreamWriter
本身写ByteArrayOutputStream
,最后,你会在内存中得到一个字节数组(通过在ByteArrayOutputStream
上调用getBytes()
)。然后,您可以开启字节数组上的
ByteArrayInputStream
,读取这个字节数组。jv4diomz3#
获取一个没有StatefulBeanToCsv的工作代码段,我不喜欢这样。
z9smfwbn4#
这是正确的实作