最近在做项目中遇到base64code处理的问题。下面是我写的示例:
http://juck.iteye.com
package com.juck.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Base64Code{
//测试主方法
public static void main(String[] args){
final String fileName = "示例文件";
final String fileSuffix = ".jpg";
final String url = "XXXXXXX";//文件路径
try{
String base64Code=encoderToBase64Code(url);
base64CodeToFile(base64Code,"D:\\BASE64编码字符串"+fileName+".txt");
decoderToBase64Code(base64Code,"D:\\解码"+fileName+fileSuffix);
}catch(Exception e){
e.printStackTrace();
}
}
//文件转换程BASE64编码
public static String encoderToBase64Code(String path)throws IOException{
File file = new File(path);
FileInputStream input = new FileInputStream(file);
byte[] buffer = new byte[(int)file.length()];
input.read(buffer);
input.close();
System.out.print(new BASE64Encoder().encode(buffer));//打印文件经过编码后的字符串
return new BASE64Encoder().encode(buffer);
}
//BASE64字符串解码并保存文件
public static void decoderToBase64Code(String base64Code,String targetPath) throws IOException{
byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code);
FileOutputStream out = new FileOutputStream(targetPath);
out.write(buffer);
out.close();
//BASE64字符串保存成文本
public static void base64CodeToFile(String base64Code,String targetPath) throws IOException{
byte[] buffer = base64Code.getBytes();
FileOutputStream out = new FileOutputStream(targetPath);
out.write(buffer);
out.close();
}
}
}
http://juck.iteye.com