最近在做项目中遇到base64code处理的问题。下面是我写的示例:
- 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();
- }
-
- }
-
-
-
- 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);
- }
-
-
-
- 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();
-
-
-
-
- public static void base64CodeToFile(String base64Code,String targetPath) throws IOException{
- byte[] buffer = base64Code.getBytes();
- FileOutputStream out = new FileOutputStream(targetPath);
- out.write(buffer);
- out.close();
- }
-
- }
-
- }
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();
}
}
}