MultipartFile[]和file
时间: 2023-11-17 16:00:57 浏览: 75
MultipartFile[]和File都是用于处理文件上传和读写的类,但它们有以下区别:
1.定义不同:MultipartFile[]是Spring框架中的一个类,而File是Java标准库中的一个类。
2.类型不同:MultipartFile[]是一个接口类型的数组,而File是一个基本类型的数组。
3.用途不同:MultipartFile[]主要用于上传多个文件,而File主要用于读写文件。
4.读写方式不同:MultipartFile[]可以读取二进制数据和文件名称,而File只能读取文件名称。
5.处理方式不同:MultipartFile[]可以使用Spring框架提供的方法进行处理,而File需要使用Java标准库提供的方法进行处理。
下面是一个将MultipartFile[]转换为File数组的示例代码:
```
public static File[] multipartFilesToFiles(String outFilePath, MultipartFile[] multiFiles) {
if (null == multiFiles) {
return null;
}
File[] files = new File[multiFiles.length];
for (int i = 0; i < multiFiles.length; i++) {
MultipartFile multiFile = multiFiles[i];
String fileName = multiFile.getOriginalFilename();
if (null == fileName) {
continue;
}
try {
File toFile;
InputStream ins;
ins = multiFile.getInputStream();
toFile = new File(outFilePath.concat(File.separator).concat(multiFile.getOriginalFilename()));
inputStreamToFile(ins, toFile);
files[i] = toFile;
} catch (Exception e) {
e.printStackTrace();
}
}
return files;
}
private static void inputStreamToFile(InputStream ins, File file) {
try (OutputStream os = new FileOutputStream(file)) {
int bytesRead;
int bytes = 8192;
byte[] buffer = new byte[bytes];
while ((bytesRead = ins.read(buffer, 0, bytes)) != -1) {
os.write(buffer, 0, bytesRead);
}
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}
```
阅读全文