在我的类中,我有一个多部分文件作为ByteStream,我希望对它中的记录数进行计数。
上传的文件要么是文本/CSV格式,记录如下:
number1,note1
number1,note2
number3,note3
...我的主要要求是,我不把这个文件存储在任何地方。
所以我不能使用FileReader或BufferedReader。
有办法直接计算这个ByteStream的行数吗?
发布于 2018-06-22 10:20:14
以下是经过测试并运行良好的:
@PostMapping(consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
public void fileUpload (@RequestParam MultipartFile file){
ByteArrayInputStream bis=new ByteArrayInputStream(file.getBytes());
try(BufferedReader br=new BufferedReader(new InputStreamReader(bis))){
long count = br.lines().count();
System.out.println(">>> total lines : "+count);
}
}发布于 2018-06-22 10:10:47
您无法读取行数,因为它不是您正在获取的字节流文件。如果必须读取行数,然后创建tempfile,使用Bufferreader读取它,然后仅通过代码删除该文件。
https://stackoverflow.com/questions/50985528
复制相似问题