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 | File file = 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) throws Exception { |
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 | } |