java base64编码和解码案例
可以考虑使用: javax.mail.internet.MimeUtility或者apache的org.apache.commons.codec.binary.Base64
使用commons-codec.jar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Java代码 /** * @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
字符串编码解码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
Java代码 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); } } |
图片编码解码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
Java代码 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(); } } } |