我的用例:
tmp
文件(我真的不需要创建真实文件,但我需要有 java.io.File
实例)tmp
文件我的代码如下:
@GetMapping(produces = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<MultiValueMap<String, Object>> regeneratePdfTest() throws IOException {
MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
File tempFile = File.createTempFile("temp-file-name", ".tmp");
processFile(tempFile);
parts.add("file", new HttpEntity<>(new FileSystemResource(tempFile)));
parts.add("meta-data", new HttpEntity<>(someObject));
return new ResponseEntity<>(parts, HttpStatus.OK);
}
(这段代码最适合这种情况吗?)
我知道
File.deleteOnExit()
,但文档说
仅在虚拟机正常终止时尝试删除,如 Java 语言规范所定义
就我而言,我想在响应后立即删除文件(文件有一些私人信息,我不想保留它们,也是安全内存,因为我不再需要这个文件)。
文件大小可能非常大(超过 200MB)。
更新1: 如果发生错误我也想删除文件。