package czc.superzig.modular.utils;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder; import java.io.*;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONObject;
import com.sun.jna.NativeLong; import cn.hutool.core.codec.Base64Decoder;
import czc.superzig.common.operatingtable.base.entity.Result;
import czc.superzig.modular.system.operatingtable.entity.CameraBlock;
import czc.superzig.modular.utils.camera.DemoCapture;
import groovyjarjarantlr.collections.List; public class Base64 {
private static final String separator = "/";
private final static ExecutorService executor = Executors.newCachedThreadPool();//启用多线程 //获取base64字符串
public static String encodeBase64(String filaName,boolean isSafe) {
if(StringUtils.isBlank(filaName)){
throw new NullPointerException();
}
InputStream in = null;
byte[] data = null;
String encodedText=null;
//读取图片字节数组
try {
in = new BufferedInputStream(new FileInputStream(filaName));
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
//对字节数组Base64编码 if(isSafe){
java.util.Base64.Encoder encoder = java.util.Base64.getUrlEncoder();
encodedText = encoder.encodeToString(data);
}else{
BASE64Encoder encoder = new BASE64Encoder();
encodedText=encoder.encode(data);
encodedText=encodedText.replaceAll("[\\s*\t\n\r]", "");
}
return encodedText;
} //解析base64
public static String decodeBase64(String base64,String filePath,String suffix,boolean isSafe){
if(StringUtils.isBlank(base64)||StringUtils.isBlank(filePath)||StringUtils.isBlank(suffix)){
throw new NullPointerException();
}
OutputStream out=null;
String fileName=null;
try {
byte[] b=new byte[2048];
if(isSafe){
java.util.Base64.Decoder decoder = java.util.Base64.getUrlDecoder();
b = decoder.decode(base64);
}else{
BASE64Decoder decoder = new BASE64Decoder();
b = decoder.decodeBuffer(base64.substring(base64.indexOf(",") + 1));
}
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
File file=new File(filePath);
if(!file.exists()){
file.mkdirs();
}
fileName=filePath+System.currentTimeMillis()+"."+suffix;
out = new BufferedOutputStream(new FileOutputStream(fileName));
out.write(b);
out.flush();
}catch (Exception e) { }finally {
if(out!=null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
} }
} return fileName;
}
}

最新文章

  1. css的margin
  2. 多列布局——column-count
  3. 如何安装nodejs
  4. hdu3966 树链剖分+成段更新
  5. Web 在线文件管理器学习笔记与总结(11)获取文件夹信息 (12)返回上一级操作
  6. 搭建Titanium开发环境
  7. Asp.Net下载页面,并弹出下载提示框
  8. 基于ActiveMQ的统一日志服务
  9. 安装php 带debug
  10. IE_haslayout_与众多bug的纠缠
  11. Encoding filter 编码过滤器
  12. thinkphp 5.0 命名空间
  13. 第三节:Creating API Endpoints (创建API路由)
  14. 解决 golang unrecognized import path &quot;golang.org/x&quot; 之类错误的一种尝试
  15. 解决同一页面中两个iframe互相调用jquery,js函数
  16. 微信wx.request
  17. 使用 universalimageloader 缓存图片的配置类及使用方法
  18. Newtonsoft.Json转换强类型DataTable错误:Self referencing loop detected with type ......
  19. 010 Editor - Binary Templates
  20. LoadRunner录制登录机票网址,并回放,加断言

热门文章

  1. 其他 - win10 paged pool 内存溢出
  2. Python Django中一些少用却很实用的orm查询方法
  3. Go之NSQ
  4. java使用bitmap求两个数组的交集
  5. 消息队列(五)--- RocketMQ-消息存储4
  6. CentOS 7----Apache基于域名的虚拟主机配置
  7. Go_排序
  8. mysql带条件的计数
  9. rapidxml读xml文件
  10. java.io包中的四个抽象类