首页 > 编程语言 >二维码保存到本地Java代码

二维码保存到本地Java代码

时间:2023-11-17 16:24:41浏览次数:31  
标签:Java import restTemplate 二维码 本地 path new byte public

工具类

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class WxaQrCodeUtil {
    /**
     * 二维码保存到本地
     * @param bytes
     * @param path 保存到本地的路径
     */
    public static void saveQrCodeToLocal(byte[] bytes, String path) {
        try {
            InputStream inputStream = new ByteArrayInputStream(bytes);
            //文件夹不存在则自动创建
            File tempFile = new File(path);
            if (!tempFile.getParentFile().exists()) {
                tempFile.getParentFile().mkdirs();
            }
            FileOutputStream out = new FileOutputStream(path);
            byte[] buffer = new byte[8192];
            int bytesRead = 0;
            while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) {
                out.write(buffer, 0, bytesRead);
            }
            out.flush();
            inputStream.close();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

调用方法

    
        byte[] result = HttpUtil.postHttp(url+token,map);
        String fileName = userId + ".png";
        String path = "D:\\work\" + File.separator + fileName;
        WxaQrCodeUtil.saveQrCodeToLocal(result, path);

post请求

    public static RestTemplate restTemplate;//resttemplate会自动关闭连接
    @Autowired
    public HttpUtil(RestTemplate restTemplate){
        HttpUtil.restTemplate = restTemplate;
    }

    public static byte[] postHttp(String url, Map<String,Object> map) {
        MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
        org.springframework.http.HttpEntity requestEntity = new org.springframework.http.HttpEntity(map, headers);
        ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
        return entity.getBody();
    }

 

标签:Java,import,restTemplate,二维码,本地,path,new,byte,public
From: https://www.cnblogs.com/cgy-home/p/17839033.html

相关文章

  • JavaScript之splice()
    参考:https://blog.csdn.net/weixin_45726044/article/details/120151153概述splice()方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。一个参数splice(index)——>从index的位置开始,删除之后的所有元素(包括......
  • 重写Java中Arrays数组工具类提供的sort()排序函数中的比较器类Comparator的compare()
    排序方法是我们日常开发或者写功能函数,或者实现算法时,常调用的方法。有时甚至,开发人员自己还要写一写排序算法。今天,我们来修改Java官方提供的Arrays工具类中的静态排序sort()方法。反问一下,为什么要重写呢?官方提供的还不够你用?回答:确实不够用,官方默认是对数字,特别是sort比较的......
  • Java Junit单元测试(入门必看篇)
    Hii,mJinXiang⭐前言 ⭐本篇文章主要介绍单元测试工具Junit使用以及部分理论知识......
  • JAVA解析Excel文件 + 多线程 + 事务回滚
    1.项目背景:客户插入Excel文件,Ececel文件中包含大量的数据行和数据列,单线程按行读取,耗时大约半小时,体验感不好。思路:先将excel文件按行读取,存入List,然后按照100均分,n=list.szie()/100+1;n就是要开启的线程总数。(实际使用的时候,数据库连接池的数量有限制,n的大小要结合数据库连......
  • JAVA 解析Excel + 多线程 + 事务回滚(2)
    该方法为网上查询,感觉可行,并未真正尝试。主线程:packagecom.swagger.demo.service;importcom.alibaba.excel.context.AnalysisContext;importcom.alibaba.excel.event.AnalysisEventListener;importcom.swagger.demo.config.SpringJobBeanFactory;importcom.swagger.demo.m......
  • Java实现学生类继承自human类
    编写人类Human,包括私有姓名、性别、年龄,定义获取各个字段的公共方法,再定义公共的构造方法和思考方法。编写继承人类的学生类Student,增加私有的学号字段以及公共的获取学号的方法,还有公共的构造方法、学习方法,并重写toString方法获取学生数据。最后定义测试类,构造若干个学生对象......
  • Java生成随机三维数组图片推流
    生成随机的三维数组frame=np.random.randint(1,254,size=(720,1280,3)).astype(np.uint8)三维数组图片添加时间frame=cv2.putText(frame,datetime.datetime.now().__str__(),(100,100),cv2.FONT_HERSHEY_SIMPLEX,2.0,(255,255......
  • Java代码混淆
    classFinal代码混淆1.参数说明-file加密的jar/war完整路径-packages加密的包名(可为空,多个用","分割)-libjarsjar/war包lib下要加密jar文件名(可为空,多个用","分割)-cfgfiles需要加密的配置文件,一般是classes目......
  • java RestTemplate 发送post请求
    RestTemplate简介RestTemplate是执行HTTP请求的同步阻塞式的客户端,它在HTTP客户端库(如JDKHttpURLConnection,ApacheHttpComponents,okHttp等)基础封装了更加简单易用的模板方法API。即RestTemplate是一个封装,底层的实现还是java应用开发中常用的一些HTTP客户端。相对于直接使用底层......
  • java中的异步任务处理和Feature接口
    简介Java并发包提供了一套框架,大大简化了执行异步任务所需要的开发。框架引入了“执行服务”的概念,封装了任务执行的细节,对任务提交者而言,他可以关注任务本身,如提交任务、获取结果、取消任务。而不用关注任务执行的细节。基本接口①Runnable和Callable:表示要执行的任务②Excecuto......