猿问

Java将MultipartFile转换为大文件的文件

我正在使用以下方法将 MultipartFile 转换为 File :


public File convert(MultipartFile file) throws IOException {

        File convFile = new File(file.getOriginalFilename());

        convFile.createNewFile();

        FileOutputStream fos = new FileOutputStream(convFile);

        fos.write(file.getBytes());

        fos.close();

        return convFile;

}

这工作很好,但对于大文件,我得到了这个例外:


java.lang.OutOfMemoryError: Java heap space

我添加了更多堆,但仍然有错误。


那么是否有一种编程方法可以解决这个问题,可能在转换时将多部分文件拆分为较小的块,但我不确定如何对其进行编码。


任何帮助或建议将不胜感激。


森栏
浏览 210回答 3
3回答

临摹微笑

是否MultipartFile属于 Spring 的包org.springframework.web.multipart?如果是这样,你可以这样做  public File convert(MultipartFile file) throws IOException {    File convFile = new File(file.getOriginalFilename());    convFile.createNewFile();      try(InputStream is = file.getInputStream()) {        Files.copy(is, convFile.toPath());       }    return convFile;  }

交互式爱情

如何使用 transferTo:public File convert(MultipartFile file) throws IOException  {  File convFile = new File(file.getOriginalFilename());  file.transferTo(convFile);  return convFile;}
随时随地看视频慕课网APP

相关分类

Java
我要回答