将文件转成base64 字符串,android 手机开发的时候会用到,当然在android有转base64的方法,这里调用的是jdk的api
[Java]代码
01
package com.xbl.test;
02
03
import java.io.File;
04
import java.io.FileInputStream;
05
import java.io.FileOutputStream;
06
07
import sun.misc.BASE64Decoder;
08
import sun.misc.BASE64Encoder;
09
10
public class File2Code {
11
12
/**
13
* <p>将文件转成base64 字符串</p>
14
* @param path 文件路径
15
* @return
16
* @throws Exception
17
*/
18
public static String encodeBase64File(String path) throws Exception {
19
Filefile = new File(path);
20
FileInputStream inputFile = new FileInputStream(file);
21
byte[] buffer = new byte[(int)file.length()];
22
inputFile.read(buffer);
23
inputFile.close();
24
return new BASE64Encoder().encode(buffer);
25
}
26
/**
27
* <p>将base64字符解码保存文件</p>
28
* @param base64Code
29
* @param targetPath
30
* @throws Exception
31
*/
32
public static void decoderBase64File(String base64Code,String targetPath) throwsException {
33
byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code);
34
FileOutputStream out = new FileOutputStream(targetPath);
35
out.write(buffer);
36
out.close();
37
}
38
/**
39
* <p>将base64字符保存文本文件</p>
40
* @param base64Code
41
* @param targetPath
42
* @throws Exception
43
*/
44
public static void toFile(String base64Code,String targetPath) throws Exception {
45
byte[] buffer = base64Code.getBytes();
46
FileOutputStream out = new FileOutputStream(targetPath);
47
out.write(buffer);
48
out.close();
49
}
50
public static void main(String[] args) {
51
try {
52
String base64Code =encodeBase64File("D:\\1.jpg");
53
System.out.println(base64Code);
54
decoderBase64File(base64Code, "D:\\2.jpg");
55
toFile(base64Code, "D:\\three.txt");
56
} catch (Exception e) {
57
e.printStackTrace();
58
}
59
}
60
61
}