文件流读取和写入,base64转换

news/2024/7/24 5:19:17 标签: java, base64
public String convertFileToBase64(String imgPath) {
        byte[] data = null;
        // 读取图片字节数组 
        ByteArrayOutputStream out = new ByteArrayOutputStream();  



//这里如果用stringbuffer 会有问题
        try {
            URL url = new URL(domain+imgPath);
            URLConnection con = url.openConnection();
            con.setReadTimeout(60000);
            con.setConnectTimeout(60000);
            InputStream in =  con.getInputStream();
            
            final int bufferSize = 1024;
            byte[] buffer = new byte[bufferSize]; 
            int rsz = -1;
            while ((rsz = in.read(buffer))>-1) {
                out.write(buffer,0,rsz);
            } 
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        data = out.toByteArray();
        // 对字节数组进行Base64编码,得到Base64编码的字符串
        BASE64Encoder encoder = new BASE64Encoder();
        String base64Str = encoder.encode(data);
        //暂时没用,只是测试了下
//        BASE64Decoder decoder = new BASE64Decoder();
//        try {
//            byte[] b = decoder.decodeBuffer(base64Str);
//            File file = new File("d://abc.jpg");
//            FileOutputStream o = new FileOutputStream(file);
//        
//            o.write(b);
//            o.flush();
//            o.close();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }finally {
//            
//        }
        return base64Str;
    }

 


http://www.niftyadmin.cn/n/648747.html

相关文章

jap mysql注册登录_spring boot 登录注册 demo (二) -- 数据库访问-阿里云开发者社区...

通过data-jpa来访问数据库org.springframework.bootspring-boot-starter-data-jpamysqlmysql-connector-java记得加上mysql-connector-java的依赖,不然提示找不到jdbc驱动数据源配置,spring boot的配置文件是:application.propertiesspring.d…

Oracle 锁表查询处理

--以下几个为相关表 SELECT * FROM v$lock; SELECT * FROM v$sqlarea; SELECT * FROM v$session; SELECT * FROM v$process ; SELECT * FROM v$locked_object; SELECT * FROM all_objects; SELECT * FROM v$session_wait; --查看被锁的表 select b.owner,b.object_name,a.sess…

中使用未定义的常量名称-假定为“名称”_C语言学习之预处理命令的使用方法...

C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 …

锁表查询 处理

--以下几个为相关表 SELECT * FROM v$lock; SELECT * FROM v$sqlarea; SELECT * FROM v$session; SELECT * FROM v$process ; SELECT * FROM v$locked_object; SELECT * FROM all_objects; SELECT * FROM v$session_wait; --查看被锁的表 select b.owner,b.object_name,a.sess…

mysql聚集索引 myisam_原理剖析:InnoDB与MyISAM 聚集索引与非聚集索引

索引(Index)概述索引(Index)是帮助MySQL高效获取数据的数据结构。MyISAM和Innodb都使用了B树这种数据结构做为索引。数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引分为聚簇索引和非聚簇索引两种,在一个表中只能有一个聚集索引&#xf…

mysql表引擎更改_更改mysql表引擎(shell)

一、基础环境1、版本cat /etc/redhat-releaseCentOS release 6.6 (Final)2、内核uname -r2.6.32-504.el6.x86_643、ip(eth0)10.1.10.23二、shell脚本函数说明redirectlog #记录日志用的checkengine #检查innodb是否支持及查看默认引擎generatedb …

Rust雪山怎么防冷_注意啦!据说今年是冷冬,冻害怎么预防?(附天气预报)

原标题:注意啦!据说今年是冷冬,冻害怎么预防?(附天气预报)天气早知道先说今天的天气!今天天空颜色略淡,全省晴转多云,因为寒冷的北风下午才能赶到,所以今天最大的变化是早晨暖和!而今…

nuxt如何避免跨域请求_如何处理前后端的跨域请求

现实开发中常会遇到前后端跨域请求的问题,如:前端的端口是http://127.0.0.1:8848,后端的端口是http://127.0.0.1:8080,这种情况下前端直接访问后端的接口无法成功的,此处有两种解决此问题的方法,仅供参考。…