-
-
-
- import com.alibaba.fastjson.JSONObject;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import sun.misc.BASE64Decoder;
-
- import java.io.*;
- import java.util.Collections;
- import java.util.List;
- import java.util.Properties;
-
-
- public class KafkaConsumer extends ShutdownableThread {
- private static final Logger LOG = LoggerFactory.getLogger(KafkaConsumer.class);
-
- public static void main(String[] args) {
- // 图片base64字符串
- String img = "";
-
- Properties properties = getProperties();
- String filePath = properties.getProperty("file.path");
- filePath = filePath.replace("\\", "\\\\");
- String xm = "张三";
- String idCard = "360111";
- try {
- boolean f = downloadImg(img, filePath, xm, idCard);
- if (f) {
- LOG.info("XM:" + xm + "图片下载成功");
- }
- } catch (IOException e) {
- LOG.error(e.getMessage(), e);
- LOG.info("XM:" + xm + "图片下载失败");
- }
-
- }
-
- /**
- * base64转图片
- *
- * @param base64str base64码
- * @param savePath 图片路径
- * @param xm 人员姓名
- * @param idCard 身份证明号码
- * @return boolean 判断是否成功下载到本地
- */
- private static boolean downloadImg(String base64str, String savePath, String xm, String idCard) throws IOException {
- //对字节数组字符串进行Base64解码并生成图片
- if (base64str == null) {
- return false;
- }
- BASE64Decoder decoder = new BASE64Decoder();
- //Base64解码
- byte[] b = decoder.decodeBuffer(base64str);
- for (int i = 0; i < b.length; ++i) {
- //调整异常数据
- if (b[i] < 0) {
- b[i] += 256;
- }
- }
-
- // 判断路径是否不存在,不存在就创建文件夹
- File fileDir = new File(savePath);
-
- if (!fileDir.exists() && !fileDir.isDirectory()) {
- fileDir.mkdirs();
- }
-
- // 生成一个空文件,自定义图片的名字
- File file = new File(savePath + "\\" + idCard + "_" + xm + ".jpg");
-
- if (!file.exists()) {
- file.createNewFile();
- }
-
- //生成jpg图片
- OutputStream out = new FileOutputStream(file.getPath());
- out.write(b);
- out.flush();
- out.close();
- return true;
- }
-
- // 注意,这个是根据配置文件拿值,这个配置文件同项目打包后的jar包在同一目录
- private static Properties getProperties() {
- Properties properties = new Properties();
- // 获取项目根目录的绝对路径
- String rootPath = System.getProperty("user.dir") + File.separator;
- FileInputStream fileInputStream = null;
- try {
- fileInputStream = new FileInputStream(new File(rootPath + "application.properties"));
- properties = new Properties();
- properties.load(fileInputStream);
- } catch (FileNotFoundException e) {
- LOG.error(e.getMessage(), e);
- } catch (IOException e) {
- LOG.error(e.getMessage(), e);
- } finally {
- if (fileInputStream != null) {
- try {
- fileInputStream.close();
- } catch (IOException e) {
- LOG.error(e.getMessage(), e);
- }
- }
- }
-
- return properties;
- }
-
- }
jar包、配置文件和生成图片的目录 D:\\test

application.properties
![]()
把项目打成jar包


本文参考:java把base64位编码转为File文件并存到本地_ekkcole的博客-CSDN博客_base64转file java