如何优雅的将MultipartFile和File互转

我们在开发过程中经常需要接收前端传来的文件,通常需要处理MultipartFile格式的文件。今天来介绍一下MultipartFile和File怎么进行优雅的互转。

前言

首先来区别一下MultipartFile和File:

  • MultipartFile是 Spring 框架的一部分,File是 Java 标准库的一部分。
  • MultipartFile主要用于接收上传的文件,File主要用于操作系统文件。

MultipartFile转换为File

使用 transferTo

这是一种最简单的方法,使用MultipartFile自带的transferTo 方法将MultipartFile转换为File,这里通过上传表单文件,将MultipartFile转换为File格式,然后输出到特定的路径,具体写法如下。

使用 FileOutputStream

这是最常用的一种方法,使用 FileOutputStream 可以将字节写入文件。具体写法如下。

使用 Java NIO

Java NIO 提供了文件复制的方法。具体写法如下。

File装换为MultipartFile

从File转换为MultipartFile 通常在测试或模拟场景中使用,生产环境一般不这么用,这里只介绍一种最常用的方法。

使用 MockMultipartFile

在转换之前先确保引入了spring-test 依赖(以Maven举例)

xml 复制代码
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>version</version>
    <scope>test</scope>
</dependency>

通过获得File文件的名称、mime类型以及内容将其转换为MultipartFile格式。具体写法如下。

更多文章干货,推荐公众号【程序员老J】

相关推荐
YuTaoShao1 小时前
【LeetCode 热题 100】139. 单词拆分——(解法一)记忆化搜索
java·算法·leetcode·职场和发展
Best_Liu~2 小时前
策略模式 vs 适配器模式
java·spring boot·适配器模式·策略模式
你的人类朋友2 小时前
【Node&Vue】什么是ECMAScript?
前端·javascript·后端
direction__2 小时前
Java Main无法初始化主类的原因与解决方法(VsCode工具)
java·vscode
帧栈2 小时前
开发避坑指南(29):微信昵称特殊字符存储异常修复方案
java·mysql
每天的每一天2 小时前
面试可能问到的问题思考-Redis
java
青云交3 小时前
Java 大视界 -- Java 大数据在智能安防人脸识别系统中的活体检测与防伪技术应用
java·大数据·生成对抗网络·人脸识别·智能安防·防伪技术·活体测试
你的人类朋友3 小时前
说说你对go的认识
后端·云原生·go
学习至死qaq3 小时前
信创产品TongLinkQ安装及springboot2整合使用
java·东方通·tonglinkq
我崽不熬夜3 小时前
Java中基本的输入输出(I/O)操作:你知道如何处理文件吗?
java·后端·java ee