package mms; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import sun.misc.BASE64Decoder; public class Base64Image { public static byte[] getPicByte(String picPath) { try { FileInputStream fileForInput = new FileInputStream(picPath); byte[] bytes = new byte[fileForInput.available()]; if(bytes.length<102400){ System.out.println(bytes.length); } fileForInput.read(bytes); fileForInput.close(); return bytes; } catch (Exception e) { e.printStackTrace(); return null; } } public static String getPicBASE64(String picPath) { // String picPath = "1400650615953.gif"; String content = ""; try { FileInputStream fileForInput = new FileInputStream(picPath); byte[] bytes = new byte[fileForInput.available()]; if(bytes.length<102400){ System.out.print(bytes.length); } fileForInput.read(bytes); content = new sun.misc.BASE64Encoder().encode(bytes); // 具体的编码方法 fileForInput.close(); } catch (Exception e) { e.printStackTrace(); } return content; } public static String toImageBASE64(String str){ String fileName = "D:\\logs\\aa.png"; BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解码 byte[] bytes = decoder.decodeBuffer(str); for (int i = 0; i < bytes.length; ++i) { if (bytes[i] < 0) {// 调整异常数据 bytes[i] += 256; } } // 生成图片 OutputStream outs = new FileOutputStream(fileName); outs.write(bytes); outs.flush(); outs.close(); } catch (Exception e) { e.printStackTrace(); return null; } return fileName; } /** * 方法用途和描述: XXXXXXX(可以分多行编写) * @param args * @author zhangjh 新增日期:May 21, 2014 * @since msdl-test */ public static void main(String[] args) { Base64Image test = new Base64Image(); String str = test.getPicBASE64("1400650615953.gif"); System.out.println("str:"+str); String filePath = test.toImageBASE64(str); System.out.print("filePath:"+filePath); } }
package mms; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import sun.misc.BASE64Decoder; public class Base64Music { public static byte[] getAmrByte(String filePath) { //String picPath = "1397116493329.amr"; try { FileInputStream fileForInput = new FileInputStream(filePath); byte[] bytes = new byte[fileForInput.available()]; if(bytes.length<102400){ System.out.println(bytes.length); } fileForInput.read(bytes); fileForInput.close(); return bytes; } catch (Exception e) { e.printStackTrace(); return null; } } public static String getAmrBASE64() { String picPath = "1397116493329.amr"; String content = ""; try { FileInputStream fileForInput = new FileInputStream(picPath); byte[] bytes = new byte[fileForInput.available()]; if(bytes.length<102400){ System.out.print(bytes.length); } fileForInput.read(bytes); content = new sun.misc.BASE64Encoder().encode(bytes); // 具体的编码方法 fileForInput.close(); } catch (Exception e) { e.printStackTrace(); } return content; } public static String toAmrBASE64(String str){ String fileName = "D:\\logs\\aa.amr"; BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解码 byte[] bytes = decoder.decodeBuffer(str); for (int i = 0; i < bytes.length; ++i) { if (bytes[i] < 0) {// 调整异常数据 bytes[i] += 256; } } // 生成图片 OutputStream outs = new FileOutputStream(fileName); outs.write(bytes); outs.flush(); outs.close(); } catch (Exception e) { e.printStackTrace(); return null; } return fileName; } /** * 方法用途和描述: XXXXXXX(可以分多行编写) * @param args * @author zhangjh 新增日期:May 21, 2014 * @since msdl-test */ public static void main(String[] args) { Base64Music test = new Base64Music(); String str = test.getAmrBASE64(); System.out.println("str:"+str); String filePath = test.toAmrBASE64(str); System.out.print("filePath:"+filePath); } }