文件的直接行数(ByteStream)-JAVA

时间:2018-06-22 10:02:23

标签: java

我的班级中有一个多部分文件作为ByteStream,我希望对此文件中的记录数进行计数。

上传的文件可以是文本/ CSV格式,其记录如下:

number1,note1
number1,note2
number3,note3
...

我的主要要求是,我不能将此文件存储在任何地方。

所以我不能使用FileReaderBufferedReader

有没有一种方法可以直接计算此ByteStream的行?

2 个答案:

答案 0 :(得分:1)

以下经过测试并且可以正常运行:

@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);
  }

}

答案 1 :(得分:0)

由于,您无法读取行数,它不是您获取的字节流文件。如果必须读取行数,则创建临时文件,使用Bufferreader读取该文件,然后仅通过代码删除该文件。