我的用例:
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: 如果发生错误,我也想删除文件。