java BASE64处理

简介: java BASE64处理
package org.fh.util;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.codec.binary.Base64;
/**
 * 说明:BASE64处理
 * 作者:FH Admin
 * from:fhadmin.cn
 */
public class ImageAnd64Binary {
  public static void main(String[] args) {
    String imgSrcPath = "H:/1.jpg";     // 生成64编码的图片的路径
    String imgCreatePath = "H:/123.png";  // 将64编码生成图片的路径
    imgCreatePath = imgCreatePath.replaceAll("\\\\", "/");
    System.out.println(imgCreatePath);
    String strImg = getImageStr(imgSrcPath);
    System.out.println(strImg);
    generateImage(strImg, imgCreatePath);
  }
  /**
   * 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
   * 
   * @param imgSrcPath
   *            生成64编码的图片的路径
   * @return
   */
  public static String getImageStr(String imgSrcPath) {
    InputStream in = null;
    byte[] data = null;
    // 读取图片字节数组
    try {
      in = new FileInputStream(imgSrcPath);
      data = new byte[in.available()];
      in.read(data);
      in.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
    // 对字节数组Base64编码
    return Base64.encodeBase64String(data);// 返回Base64编码过的字节数组字符串
  }
  /**
   * 对字节数组字符串进行Base64解码并生成图片
   * 
   * @param imgStr
   *            转换为图片的字符串
   * @param imgCreatePath
   *            将64编码生成图片的路径
   * @return
   */
  public static boolean generateImage(String imgStr, String imgCreatePath) {
    if (imgStr == null) // 图像数据为空
      return false;
    try {
      // Base64解码
      byte[] b = Base64.decodeBase64(imgStr);
      for (int i = 0; i < b.length; ++i) {
        if (b[i] < 0) {// 调整异常数据
          b[i] += 256;
        }
      }
      OutputStream out = new FileOutputStream(imgCreatePath);
      out.write(b);
      out.flush();
      out.close();
      return true;
    } catch (Exception e) {
      return false;
    }
  }
}

 

目录
相关文章
|
5月前
|
存储 Java
java用base64编码案例
Java Base64编码示例:导入`java.util.Base64`,设置字符串`originalString`,使用`Base64.getEncoder().encodeToString()`编码并存储到`encodedString`,打印编码后字符串。解码用`Base64.getDecoder().decode()`。
51 0
|
存储 Java
使用Java进行Base64编码的示例
使用Java进行Base64编码的示例
105 1
|
12月前
|
存储 编解码 Cloud Native
基于Java的Base64编解码优化探讨
基于Java的Base64编解码优化探讨
180 0
|
2月前
|
存储 安全 Java
"Java编码魔法:揭秘图片与文件的Base64神秘转换术,让数据在指尖跳跃!"
【8月更文挑战第16天】Base64编码在Java开发中常用于将二进制数据如图片转换为ASCII字符串以便传输。编码使用64个字符及等号填充,每3字节数据编码为4个字符。Java利用`java.util.Base64`类实现此功能:读取图片或文件为字节数组后进行编码。解码时将Base64字符串还原为字节数组并写入文件。需注意编码效率降低、不提供安全性及特殊字符兼容性等问题。掌握这些技巧有助于解决Web开发中的数据传输需求。
68 4
|
2月前
|
Java
Java 图片、文件 Base64 互转
Java 图片、文件 Base64 互转
36 0
|
4月前
|
存储 Java 数据处理
Java的Base64加密解密详解
Java的Base64加密解密详解
|
4月前
|
编解码 数据可视化 Java
Java如何进行Base64的编码(Encode)与解码(Decode)?
Java如何进行Base64的编码(Encode)与解码(Decode)?
112 1
|
4月前
|
算法 Java API
Base64编码介绍及基于Java语言实现
Base64编码介绍及基于Java语言实现
34 0
|
5月前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
111 1
|
5月前
|
Java 数据安全/隐私保护
java base64 加密 解密
java base64 加密 解密