服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java实现各种文件类型转换方式(收藏)

Java实现各种文件类型转换方式(收藏)

2022-08-20 11:54小小张自由—>张有博 Java教程

这篇文章主要介绍了Java 各种文件类型转换的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1.网络资源转File

需要引入依赖commons-io

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
  * 读取网络中的图片
  * @param url https://www.kziyue.com/wp-content/uploads/2019/06/5bca-hxyuaph9825616.jpg
  * @return
  */
 public File URLToFile(String url){
     File file1 = new File("test.png");
     try {
 
         URL url1 = new URL(url);
         FileUtils.copyURLToFile(url1,file1);
 
     } catch (IOException e) {
         e.printStackTrace();
     }
     File absoluteFile = file1.getAbsoluteFile();
     return file1;
 }

2.网络资源转MultipartFile

需要引入依赖spring-web

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
    * 文件上传
    * @param urlStr url地址
    * @return multipartFile
    */
   public MultipartFile fileUpload(String urlStr) throws Exception {
       try {
           //把地址转换成URL对象
           URL url = new URL(urlStr);
           //创建http链接
           HttpURLConnection conn = (HttpURLConnection)url.openConnection();
           //设置超时间为3秒
           conn.setConnectTimeout(3*1000);
           //防止屏蔽程序抓取而返回403错误
           conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36)");
           //得到输入流
           InputStream inputStream = conn.getInputStream();
           //截取链接中的文件名
           String fileName= urlStr.substring(urlStr.lastIndexOf("/")+1);
           MultipartFile multipartFile = new MockMultipartFile(fileName,fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
 
           return multipartFile;
       } catch (Exception e) {
           e.printStackTrace();
       }
       throw new Exception();
 
   }

3.File转MultipartFile

需要引用的依赖spring-text,httpcore

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * 文件类型转换
 *
 * @param filePath 文件file
 * @return MultipartFile
 */
public static MultipartFile caseFileToMultipartFile(File filePath) {
    MultipartFile multipartFile = null;
    try {
        log.info("开始进行文件转换");
        FileInputStream fileInputStream = new FileInputStream(filePath);
        multipartFile = new MockMultipartFile(filePath.getName(), filePath.getName(),
                ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
    return multipartFile;
}

4.File转字节数组

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
    * 将文件转为字节数组
    * @param file
    * @param size 1024
    * @return
    */
   public static byte[] BufferStreamForByte(File file, int size) {
       byte[] content = null;
       try {
           BufferedInputStream bis = null;
           ByteArrayOutputStream out = null;
           try {
               FileInputStream input = new FileInputStream(file);
               bis = new BufferedInputStream(input, size);
               byte[] bytes = new byte[1024];
               int len;
               out = new ByteArrayOutputStream();
               while ((len = bis.read(bytes)) > 0) {
                   out.write(bytes, 0, len);
               }
 
               bis.close();
               content = out.toByteArray();
           } finally {
               if (bis != null) {
                   bis.close();
               }
               if (out != null) {
                   out.close();
               }
           }
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       return content;
 
   }

5.Frame转BufferedImage

需要引入依赖javacv

?
1
2
3
4
5
6
public static BufferedImage FrameToBufferedImage(Frame frame) {
       //创建BufferedImage对象
       Java2DFrameConverter converter = new Java2DFrameConverter();
       BufferedImage bufferedImage = converter.getBufferedImage(frame);
       return bufferedImage;
   }

6.BufferedImage转MultipartFile

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static MultipartFile fileCase(BufferedImage image){
       //得到BufferedImage对象
      // BufferedImage bufferedImage = JoinTwoImage.testEncode(200, 200, url);
       MultipartFile multipartFile= null;
       try {
           //创建一个ByteArrayOutputStream
           ByteArrayOutputStream os = new ByteArrayOutputStream();
           //把BufferedImage写入ByteArrayOutputStream
           ImageIO.write(image, "jpg", os);
           //ByteArrayOutputStream转成InputStream
           InputStream input = new ByteArrayInputStream(os.toByteArray());
           //InputStream转成MultipartFile
           multipartFile =new MockMultipartFile("file", "file.jpg", "text/plain", input);
       } catch (IOException e) {
           e.printStackTrace();
       }
       return multipartFile;
 
   }

到此这篇关于Java 各种文件类型转换的方法的文章就介绍到这了,更多相关Java 文件类型转换内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/promsing/article/details/123269347

延伸 · 阅读

精彩推荐
  • Java教程java中final修饰符的使用方法

    java中final修饰符的使用方法

    这篇文章主要为大家详细介绍了java中final修饰符的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    王甘林2392020-11-28
  • Java教程idea启动项目报端口号冲突或被占用的解决方法

    idea启动项目报端口号冲突或被占用的解决方法

    这篇文章主要介绍了idea启动项目报端口号冲突或被占用的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    handsome-boy10682021-06-06
  • Java教程Java实现几种序列化方式总结

    Java实现几种序列化方式总结

    本篇文章主要介绍了Java实现几种序列化方式总结,包括Java原生以流的方法进行的序列化、Json序列化、FastJson序列化、Protobuff序列化。有兴趣的可以了解一...

    皮斯特劳沃4152020-08-24
  • Java教程Java利用序列化实现对象深度clone的方法

    Java利用序列化实现对象深度clone的方法

    这篇文章主要介绍了Java利用序列化实现对象深度clone的方法,实例分析了java序列化及对象克隆的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 ...

    华宰2282019-12-29
  • Java教程使用java基础类实现zip压缩和zip解压工具类分享

    使用java基础类实现zip压缩和zip解压工具类分享

    使用java基础类写的一个简单的zip压缩解压工具类,实现了指定目录压缩到和该目录同名的zip文件和将zip文件解压到指定的目录的功能 ...

    java教程网3982019-11-14
  • Java教程Java如何在List或Map遍历过程中删除元素

    Java如何在List或Map遍历过程中删除元素

    相信大家在日常的开发过程中,经常需要对List或Map里面的符合某种业务的数据进行删除,但是如果不了解里面的机制就容易掉入“陷阱”导致遗漏或者程序...

    daisy5502020-07-09
  • Java教程如何简单的理解依赖注入详解

    如何简单的理解依赖注入详解

    一直对依赖注入理解不清楚,最近突然理解了,所以下面这篇文章主要给大家介绍了关于如何简单的理解依赖注入的相关资料,文中通过示例代码介绍的非...

    Summer7C9092021-05-14
  • Java教程MyBatis-Plus简介和快速入门教程

    MyBatis-Plus简介和快速入门教程

    MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做修改,为简化开发、提高效率而生,本文给大家介绍MyBatis-Plus简介和快速入门教程,需要...

    Keeling17206292021-12-23