使用commons-codec.jar
/** * @param bytes * @return */ public static byte[] decode(final byte[] bytes) { return Base64.decodeBase64(bytes); } /** * 二进制数据编码为BASE64字符串 * * @param bytes * @return * @throws Exception */ public static String encode(final byte[] bytes) { return new String(Base64.encodeBase64(bytes)); }
下面会提示: BASE64Encoder是内部专用 API, 可能会在未来发行版中删除
http://www.iteye.com/topic/605714
字符串编码解码
import java.io.IOException; public class Test { /** * 编码 * @param bstr * @return String */ public static String encode(byte[] bstr){ return new sun.misc.BASE64Encoder().encode(bstr); } /** * 解码 * @param str * @return string */ public static byte[] decode(String str){ byte[] bt = null; try { sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); bt = decoder.decodeBuffer( str ); } catch (IOException e) { e.printStackTrace(); } return bt; } /** * @param args */ public static void main(String[] args) { test te = new test(); String aa = "更多更多"; aa = te.encode(aa.getBytes()); System.out.println("----aa:"+aa); String str = aa; String str2 = new String(te.decode(str)); System.out.println("-----str2:"+str2); } }
图片编码解码
package palmcity.cpndservice.tool; import java.io.FileInputStream; import java.io.RandomAccessFile; public class ImageTool { /** * 图片BASE64 编码 */ public static String getPicBASE64(String picPath) { String content = null; try { FileInputStream fis = new FileInputStream(picPath); byte[] bytes = new byte[fis.available()]; fis.read(bytes); content = new sun.misc.BASE64Encoder().encode(bytes); // 具体的编码方法 fis.close(); // System.out.println(content.length()); } catch (Exception e) { e.printStackTrace(); } return content; } /** * 对图片BASE64 解码 * */ public static void getPicFormatBASE64(String str, String picPath) { try { byte[] result = new sun.misc.BASE64Decoder().decodeBuffer(str .trim()); RandomAccessFile inOut = new RandomAccessFile(picPath, "rw"); // r,rw,rws,rwd // 用FileOutputStream亦可 inOut.write(result); inOut.close(); } catch (Exception e) { e.printStackTrace(); } } }