接上篇java Base64算法

根据之前过程使用base64加解密,所以写成了工具类。

代码示例;

public class Base64Util {

    private static Logger logger = LoggerFactory.getLogger(Base64Util.class);

    /**
* @param
* @return String
* @description BASE64解码
*/
public static byte[] decode(String s) {
if (StringUtils.isEmpty(s)) {
return null;
}
BASE64Decoder decoder = new BASE64Decoder();
try {
return decoder.decodeBuffer(s);
} catch (Exception e) {
return null;
}
} /**
* @param
* @return String
* @description base64编码
*/
public static String encode(byte[] s) {
if (s == null) {
return null;
}
return (new sun.misc.BASE64Encoder()).encode(s);
} /**
* @param filePath
* @param base64Str
*/
public static void base64ToFile(String base64Str,String filePath) {
System.err.println(base64Str.length());
try {
byte[] b = Base64.decode(base64Str);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
FileUtils.writeByteArrayToFile(new File(filePath), b); /**
* 生成缩略图
* 若图片横比200小,高比300小,不变
* 若图片横比200小,高比300大,高缩小到300,图片比例不变
* 若图片横比200大,高比300小,横缩小到200,图片比例不变
* 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300
*/
System.err.println("OK");
} catch (Exception e) {
System.out.println("error");
}
} /**
* @param outFilePath 输出文件的地址
* @param file 需要输出的文件
*/
public static void saveMultipartFileToFile(MultipartFile file, String outFilePath) throws BusinessException, IOException {
FileOutputStream os = new FileOutputStream(outFilePath);
try {
byte[] data =file.getBytes();
for (int i = 0; i < data.length; ++i) {
if (data[i] < 0) {// 调整异常数据
data[i] += 256;
}
}
os.write(data);
os.close();
} catch (Exception e) {
throw new BusinessException("图片转换失败");
}finally {
os.flush();
os.close();
}
} /**
* base64 转 Multipart
* @param base64
* @return
*/
public static MultipartFile base64ToMultipart(String base64) {
try {
String[] baseStr = base64.split(",");
BASE64Decoder decoder = new BASE64Decoder();
byte[] b = new byte[0];
b = decoder.decodeBuffer(baseStr[1]);
for(int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
return new BASE64DecodedMultipartFile(b, baseStr[0]);
} catch (IOException e) {
logger.error(e.getMessage());
return null;
} catch (ArrayIndexOutOfBoundsException a){
logger.error(a.getMessage());
return null;
}
}
}

最新文章

  1. JavaScript call
  2. Java调用Linux命令
  3. 20145213《Java程序设计》第五周学习总结补充
  4. MySQL 仅保留7天、一个月数据
  5. [转] matlab saveas 和imwrite的区别
  6. 简单理解Hibernate三种状态的概念及互相转化
  7. cocos2d-x 3.0 画图节点——Node
  8. .net常考面试题
  9. python邮件发送脚本
  10. Form标签+Css基础
  11. java 图片高保真缩放
  12. HDU1253--胜利大逃亡--HDU1240--Asteroids!--简单三维BFS
  13. 2013~2014年度 NOIP~GDOI总结
  14. 12、ABPZero系列教程之拼多多卖家工具 拼团提醒功能登录拼多多实现
  15. Sql语言简介——检索数据
  16. C# 反射,通过类名、方法名调用方法
  17. 学习python的几种模块
  18. 【详解】WebSocket相关知识整理
  19. CentOS 开发环境准备
  20. ASPxLoadingPanel(珍藏版)

热门文章

  1. Linux 系统基于 Hadoop 安装 Hive
  2. BP神经网络算法程序实现鸢尾花(iris)数据集分类
  3. 冷饭新炒:理解断路器CircuitBreaker的原理与实现
  4. Java学习的第三十八天
  5. python机器学习识别手写数字
  6. python日期与日历Datetime和Calendar模块
  7. [C#] (原创)一步一步教你自定义控件——04,ProgressBar(进度条)
  8. leetcode 98:n-queens-ii
  9. 第05组 Alpha冲刺 (2/6)
  10. Docker版EKL安装记录文档