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

 更新时间:2022年03月04日 11:24:54   作者:小小张自由—>张有博  
这篇文章主要介绍了Java 各种文件类型转换的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1.网络资源转File

需要引入依赖commons-io

   /**
     * 读取网络中的图片
     * @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

 /**
     * 文件上传
     * @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

    /**
     * 文件类型转换
     *
     * @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转字节数组

 /**
     * 将文件转为字节数组
     * @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

 public static BufferedImage FrameToBufferedImage(Frame frame) {
        //创建BufferedImage对象
        Java2DFrameConverter converter = new Java2DFrameConverter();
        BufferedImage bufferedImage = converter.getBufferedImage(frame);
        return bufferedImage;
    }

6.BufferedImage转MultipartFile

 
 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 文件类型转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何使用Jenkins构建GIT+Maven项目

    如何使用Jenkins构建GIT+Maven项目

    这篇文章主要介绍了如何使用Jenkins构建GIT+Maven项目,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 重新实现hashCode()方法

    重新实现hashCode()方法

    hashCode()是Java中的一个重要方法,用于计算对象的哈希码。本文介绍了如何重新实现hashCode()方法,包括使用对象的属性计算哈希码、使用字符串拼接计算哈希码、使用随机数计算哈希码等方法。同时,还介绍了如何避免哈希冲突,提高哈希表的效率。
    2023-04-04
  • springboot实现浏览器截屏并添加文字

    springboot实现浏览器截屏并添加文字

    大家好,本篇文章主要讲的是springboot实现浏览器截屏并添加文字,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Spring Boot与RabbitMQ结合实现延迟队列的示例

    Spring Boot与RabbitMQ结合实现延迟队列的示例

    本篇文章主要介绍了Spring Boot与RabbitMQ结合实现延迟队列的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 利用Java Set 去除重复object的方法

    利用Java Set 去除重复object的方法

    下面小编就为大家带来一篇利用Java Set 去除重复object的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • SpringCloud之Feign示例详解

    SpringCloud之Feign示例详解

    本篇文章主要介绍了SpringCloud之Feign示例详解,详细的介绍了Feign简介和使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • java利用DFA算法实现敏感词过滤功能

    java利用DFA算法实现敏感词过滤功能

    在最近的开发中遇到了敏感词过滤,便去网上查阅了很多敏感词过滤的资料,在这里也和大家分享一下自己的理解。下面这篇文章主要给大家介绍了关于java利用DFA算法实现敏感词过滤功能的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-06-06
  • Springboot @Import 详解

    Springboot @Import 详解

    这篇文章主要介绍了Springboot @Import 详解,仔细看了下Springboot关于@Import的处理过程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • JAVA实现读取txt文件内容的方法

    JAVA实现读取txt文件内容的方法

    本篇文章主要介绍了JAVA实现读取txt文件内容的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Java数组去重复的18种方法示例

    Java数组去重复的18种方法示例

    这篇文章主要为大家介绍了Java数组去重复的18种写法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论