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

目录
  • 1.网络资源转File
  • 2.网络资源转MultipartFile
  • 3.File转MultipartFile
  • 4.File转字节数组
  • 5.Frame转BufferedImage
  • 6.BufferedImage转MultipartFile

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

(0)

相关推荐

  • Java 之类型转换与多态详情

    目录 一.类型检查 二.基本类型转换 三.upcast与多态 四.downcast 五.Object类型 一.类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用.我们之前见过对象数据.类数据.方法参数.方法返回值以及方法内部的自动变量,它们都需要声明其类型.Java是一种强类型(strongly typing)语言,它会对类型进行检查.如果我们错误的使用类型,将造成错误. 比如在下面的Test类中,我们将一个Cup类对象赋予给aPerson类引用: pu

  • Java中Object转换为List类型的实现方法

    前言 在很多项目编写过程中会使用Map<?>类型来进行参数的传递.为了能够让更多的类型放入value中,实例化的类型往往是Map<String, Object>来存放数据. 解析数据的时候map.get(key)所获取到的类型为Object.此时,需要转换成我们所需要的数据类型进行使用. 类型转换 在类型转换工程中,常见的转换方式为强制转换.如(String)map.get(key),(int)map.get(key)等.在是如果接收的类型为List,此时强转(List<St

  • java 实现将Object类型转换为int类型

    如何将Object类型转换为int类型 Object object = null; try { Integer.parseInt(object.toString()); } catch (NumberFormatException e) {} 也可以先判定一下是否是Integer //可以先判定一下是否是Integer Object object = "111"; if (object instanceof Integer) { Integer.parseInt(object.toSt

  • Java之int和string类型转换详解

    int.String的类型转换 int -> String int i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=String.valueOf(i); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法:i=Integer.valueOf(s

  • java 各种数据类型的互相转换实例代码

    StringBuilder转化为String String str = "abcdefghijklmnopqrs"; StringBuilder stb = new StringBuilder(str); 整型数组转化为字符串 StringBuilder s = new StringBuilder(); for(i=1;i<=n;i++) { s.append(String.valueOf(a[i])); } String str = ""+s; 字符串转化为

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

    目录 1.网络资源转File 2.网络资源转MultipartFile 3.File转MultipartFile 4.File转字节数组 5.Frame转BufferedImage 6.BufferedImage转MultipartFile 1.网络资源转File 需要引入依赖commons-io /** * 读取网络中的图片 * @param url https://www.kziyue.com/wp-content/uploads/2019/06/5bca-hxyuaph9825616.jp

  • java读取文件和写入文件的方式(简单实例)

    Java代码 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public static void readFileByBytes(String fileName) { File file = new File(fileName); InputStream in = null; try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读

  • Java字符串写入文件三种方式的实现

     Java字符串写入文件三种方式的实现 1.使用FileWriter String str="hello world!"; FileWriter writer; try { writer = new FileWriter("E:/token.txt"); writer.write(str); writer.flush(); writer.close(); } catch (IOException e) { e.printStackTrace(); } 2.使用Fil

  • JAVA.io读写文件方式汇总

    一.Java把这些不同来源和目标的数据都统一抽象为数据流. Java语言的输入输出功能是十分强大而灵活的. 在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流. 这里介绍几种读写文件的方式 二.InputStream.OutputStream(字节流) //读取文件(字节流) InputStream in = new FileInputStream("d:\\1.txt"); //写入相应的文件

  • Java加载properties文件实现方式详解

    java加载properties文件的方式主要分为两大类:一种是通过import java.util.Properties类中的load(InputStream in)方法加载: 另一种是通过import java.util.ResourceBundle类的getBundle(String baseName)方法加载. 注意:一定要区分路径格式 实现代码如下: package com.util; import java.io.FileInputStream; import java.io.Fil

  • java导出dbf文件生僻汉字处理方式

    java导出dbf文件生僻汉字处理 java导出数据到dbf文件,如果姓名中有生僻汉字,在dbf中看到的很可能是?号. 遇到这种情况需查对GBK的生僻汉字的Unicode表,GBK提及的52个生僻汉字有两种Unicode. 例如: 䶮(yan 3) \u4ADE就不能在dbf中正常显示是? 如果换成\uE863则可以(可以打开word的插入->符号->其他符号,在字符代码中输入4ADE的到字符插入word,输入E863的到另一形式插入word,将这两种形式的字符从word拷贝到Visual F

  • Java IO流 文件传输基础

    一.文件的编码 package com.study.io; /** * 测试文件编码 */ public class EncodeDemo { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { String s="好好学习ABC"; byte[] bytes1=s.getBytes();//这是把字符串转换成字符数组,转换成的字节序列用的是

  • Java常见异常及处理方式总结

    一.概述 异常指不期而至的各种状况,它在程序运行的过程中发生.作为开发者,我们都希望自己写的代码 永远都不会出现 bug,然而现实告诉我们并没有这样的情景.如果用户在程序的使用过程中因为一些原因造成他的数据丢失,这个用户就可能不会再使用该程序了.所以,对于程序的错误以及外部环境能够对用户造成的影响,我们应当及时报告并且以适当的方式来处理这个错误. 之所以要处理异常,也是为了增强程序的鲁棒性. 异常都是从 Throwable 类派生出来的,而 Throwable 类是直接从 Object 类继承而

  • Java 中EasyExcel的使用方式

    目录 背景 项目构建及依赖 创建实体类 生成Excel 解析Excel 其他相关特殊用法 自定义转换器 保留两位小数 排除指定Excel列 小结 背景 系统中经常要导出大量的数据,格式基本上都是Excel,然而每次导表都是对系统内存的一次挑战. 在Java领域,生成或解析Excel的框架比较有名的当属Apache的poi和jxl了.但使用它们,会面临着严重的内存损耗问题.如果系统的并发量还不行,一旦导出大量数据,便会出现JVM频繁full gc,甚至导致OOM. EasyExcel是阿里巴巴开源

  • Java中实现文件上传下载的三种解决方案(推荐)

    java文件上传与文件下载是程序开发中比较常见的功能,下面通过本文给大家介绍Java中实现文件上传下载的三种解决方案,具体详情如下所示: 第一点:Java代码实现文件上传 FormFile file=manform.getFile(); String newfileName = null; String newpathname=null; String fileAddre="/numUp"; try { InputStream stream = file.getInputStream(

随机推荐