java隐式类型转换(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进阶学习资料小编已打包好,可以关注私信找我领取哦!

(0)

相关推荐

  • 怎样在C++实现数据强制类型转换

    强制类型数据转换,是将数据显式进行类型转换,如何在C++中实现强制类型数据转换呢?小编与大家分享一下自己的心得. 操作方法 01 首先,定义两个整型变量n和m,并给它们赋初值. 02 定义一个长整型变 ...

  • java的强制类型转换

    java的强制类型转换 强制类型转换,又叫造型.分为基本数据类型和引用数据类型两种情况,这里探讨后者,即引用类型的强制类型转换. 对于引用类型来说,什么是强制类型转换呢?简单地说,就是把父类型转换为子 ...

  • 数据类型转换——Java语言

    在编程过程中,有点时候我们会用到数据转换,比如有些东西必须是整体出现,不能出现小数,不然就与现实不符. 基本数据类型转换 01 第一类:自动换行类型(精度小>精度大)这个应该很容易理解,例如我精 ...

  • JS强制类型转换

    JS强制类型转换 操作方法 01 使用强制类型转换(type casting)处理转换值的类型.使用强制类型转换可以访问特定的值,即使它是另一种类型的. 02 ECMAScript中可用的3种强制类型 ...

  • C语言中的“强制类型转换”是怎样实现的?

    操作方法 01 (type)<expression> 其中,type为类型描述符,如int,float等.<expression>为表达式.经强制类型转换运算符运算后,返回一个 ...

  • C语言强制类型转换怎么做?

    C语言是非常基本的编程语言,应用范围十分广泛.今天,小编就来说说C语言强制类型转换怎么做. 操作方法 01 我们定义三个整型变量a.b.c,其中a=4,b=2,c=a/b.经过分析我们可以知道,若不转 ...

  • java no XXX in java.library.path怎么配置?

    用Eclipse运行某个程序,报错了,提示java no XXX in java.library.path,让设置 java -Djava.library.path=... 下面介绍一下Win7 系统 ...

  • JAVA题库:JAVA面试题目整理

    JAVA题库:JAVA面试题目整理

  • iPhone XS ios12系统隐式推送开启后怎么关闭

    iPhone XS ios12系统隐式推送开启后怎么关闭,现在很多用户都购买了iPhone XS,当然了,随着新版本手机的发布,ios 12系统也是全面开启了升级模式,很多用户对消息通知设置了隐式推送 ...