iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java MultipartFile和File 最简单的互转
  • 359
分享到

java MultipartFile和File 最简单的互转

java开发语言 2023-09-11 18:09:26 359人浏览 安东尼
摘要

MultipartFile和File 的区别 MuitipartFile 是 spring 框架中用来处理文件上传的接口,它封装了文件上传的信息,比如文件名、文件类型等。 File 是Java 标准库中提供的文件操作类,用于描述文件信息,比

MultipartFile和File 的区别

MuitipartFile 是 spring 框架中用来处理文件上传的接口,它封装了文件上传的信息,比如文件名、文件类型等。

File 是Java 标准库中提供的文件操作类,用于描述文件信息,比如文件路径、文件大小等

总的来说,MultipantFile 是用来处理文件上传的,而 File 则是用来描述文件信息的。

MultipartFile 与 File 的 互相转换

1. MultipartFile 转 File

最常见的方式(通过文件流写入):

public File multipartFile2File (MultipartFile multipartFile) {    // 创建临时文件    String path = "export/demo.xlsx";    File file = new File(path);    InputStream inputStream = null;    FileOutputStream outputStream = null;    try {        // 获取文件输入流        inputStream = multipartFile.getInputStream();               if (!file.exists()) {            file.createNewFile();        }        // 创建输出流        outputStream = new FileOutputStream(file);        byte[] bytes = new byte[1024];        int len;        // 写入到创建的临时文件        while ((len = inputStream.read(bytes)) > 0) {            outputStream.write(bytes, 0, len);        }    } catch (Exception e) {        throw new RuntimeException(e);    } finally {        // 关流        try {            if (outputStream != null) {                outputStream.close();            }            if (outputStream != null) {                inputStream.close();            }            outputStream.close();        } catch (IOException e) {            throw new RuntimeException(e);        }    }    return file;}

最简单的方式:

使用Spring中的FileCpopyUtils类的copy()方法将MultipartFile 转换为File类型

public File multipartFile2File (MultipartFile multipartFile) {    String path = "export/demo.xlsx";    File file = new File(path);    try {        if (!file.exists()) {            file.createNewFile();        }        // 底层也是通过io流写入文件file        FileCopyUtils.copy(multipartFile.getBytes(), file);    } catch (Exception e) {        throw new RuntimeException(e);    }    return file;}
2. File 转 MultipartFile

使用org.springframework.mock.WEB.MockMultipartFile 需要导入spring-test.jar

public MultipartFile file2MultipartFile () {    String path = "export/demo.xlsx";    File file = new File(path);    MultipartFile multipartFile;    try {        FileInputStream fileInputStream = new FileInputStream(file);        multipartFile = new MockMultipartFile("copy"+file.getName(),file.getName(), ContentType.APPLICATION_OCTET_STREAM.toString(),fileInputStream);        System.out.println(multipartFile.getName()); // 输出demo.xlsx        fileInputStream.close();    } catch (Exception e) {        throw new RuntimeException(e);    }    return multipartFile;}

 使用CommonsMultipartFile

public MultipartFile file2MultipartFile () {    String path = "export/demo.xlsx";    File file = new File(path);    MultipartFile multipartFile;    try {        DiskFileItem fileItem2 = (DiskFileItem) new DiskFileItemFactory().createItem("file", ContentType.MULTIPART.getValue(), true, file.getName());        //也可以用IOUtils.copy(inputStream,os);        Files.copy(Paths.get(file.getAbsolutePath()), fileItem2.getOutputStream());        multipartFile = new CommonsMultipartFile(fileItem2);    } catch (Exception e) {        throw new RuntimeException(e);    }    return multipartFile;}

 又是摸鱼的一天,,,,,

来源地址:https://blog.csdn.net/m0_56324585/article/details/131723857

--结束END--

本文标题: java MultipartFile和File 最简单的互转

本文链接: https://www.lsjlt.com/news/403472.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作