我正在使用以下方法将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;
}

Wich工作正常,但对于大文件,我遇到了以下异常:
java.lang.OutOfMemoryError: Java heap space

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

因此,有没有一种编程的方法来解决此问题,可能在转换时将多部分文件分割成较小的块,但是我不确定如何编码。

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

最佳答案

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

08-17 22:33