如何优雅的将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】

相关推荐
京师20万禁军教头38 分钟前
47-常用类-八大包装类(Wrapper Classes)
java
come1123444 分钟前
剪映零基础教程
java·linux·运维
16月6日-晴1 小时前
Java面向对象——接口
java·开发语言
geovindu1 小时前
CSharp: Wordcloud
开发语言·后端·c#·.net·.netcore·词云
苏生Susheng1 小时前
【软件实施】Windows 服务器运维实战
java·运维·服务器·windows·spring boot·javaweb·实施
Java小白笔记1 小时前
Java 实现 ZIP 压缩包生成方案
java·开发语言·网络·7-zip
重生之我是Java开发战士2 小时前
【Spring Cloud】认识微服务与工程搭建
spring·spring cloud·微服务
霸道流氓气质2 小时前
Spring AI 多模态开发指南:图片理解与语音合成
java·人工智能·spring
en.en..2 小时前
Linux mmap 内存映射深度解析:基于帧缓冲 /dev/fb0
java·服务器·前端
geovindu2 小时前
CSharp: Command Pattern
开发语言·后端·c#·.net·.netcore·命令模式·行为模式