如何在Spring中将Multipart文件作为字符串读取?

我想使用Advanced Rest Client从我的桌面发布文本文件。 这是我的控制器:

@RequestMapping(value = "/vsp/debug/compareConfig/{deviceIp:.*}", method = RequestMethod.POST, consumes = { "multipart/form-data" }, produces = { "application/json" }) public ResponseEntity compareCLIs(HttpServletRequest request, @RequestParam("file") MultipartFile file, @PathVariable("deviceIp") String device) { log.info(file.getOriginalFilename()); byte[] bytearr = file.getBytes(); log.info("byte length: ", bytearr.length); log.info("Size : ", file.getSize()); } 

这不会返回字节长度或文件大小的任何值。 我想将文件值读取到StringBuffer。 有人可以提供有关此的指示吗? 在将其解析为字符串之前,我不确定是否需要保存此文件。 如果是这样,我如何在工作区中保存文件?

如果要将Multipart文件的内容加载到String中,最简单的解决方案是:

 String content = new String(file.getBytes()); 

或者,如果要指定charset:

 String content = new String(file.getBytes(), "UTF-8"); 

但是,如果您的文件很大,这个解决方案可能不是最好的。

首先,这与Spring无关,其次,您不需要保存文件来解析它。

要将Multipart文件的内容读入String,您可以像这样使用Apache Commons IOUtils类

 ByteArrayInputStream stream = new ByteArrayInputStream(file.getBytes()); String myString = IOUtils.toString(stream, "UTF-8");