一,描述:
Base64 是一种基于64个可打印字符来表示二进制数据的表示方法,解决了网络传送渠道一些相关的问题。
Base64索引表:
value | char | value | char | value | char | value | char |
---|---|---|---|---|---|---|---|
0 | A | 16 | Q | 32 | g | 48 | w |
1 | B | 17 | R | 33 | h | 49 | x |
2 | C | 18 | S | 34 | i | 50 | y |
3 | D | 19 | T | 35 | j | 51 | z |
4 | E | 20 | U | 36 | k | 52 | 0 |
5 | F | 21 | V | 37 | l | 53 | 1 |
6 | G | 22 | W | 38 | m | 54 | 2 |
7 | H | 23 | X | 39 | n | 55 | 3 |
8 | I | 24 | Y | 40 | o | 56 | 4 |
9 | J | 25 | Z | 41 | p | 57 | 5 |
10 | K | 26 | a | 42 | q | 58 | 6 |
11 | L | 27 | b | 43 | r | 59 | 7 |
12 | M | 28 | c | 44 | s | 60 | 8 |
13 | N | 29 | d | 45 | t | 61 | 9 |
14 | O | 30 | e | 46 | u | 62 | + |
15 | P | 31 | f | 47 | v | 63 | / |
二,封装类,可直接用:
这个是调用Android系统中封装好的Base64类中的方法来转化的。
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.text.TextUtils;
import android.util.Base64;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* Base64编码算法
*/
public class Base64Tool {
/**
* 字符串进行Base64编码
* */
public static String setStringToBase64(String value) {
String encodedString = Base64.encodeToString(value.getBytes(), Base64.DEFAULT);
return encodedString;
}
/**
* 字符串进行Base64解码
* */
public static String setBase64ToString(String value) {
String decodedString = new String(Base64.decode(value, Base64.DEFAULT));
return decodedString;
}
/**
* 对文件进行Base64编码 并 存储
* @param path 路径:"/storage/emulated/0/pimsecure_debug.txt"
* @param data 需要存入的数据
* */
public static boolean setFileToBase64(String path, byte[] data) {
File desFile = new File(path);
FileOutputStream fos = null;
try {
byte[] decodeBytes = Base64.encode(data, Base64.DEFAULT);
fos = new FileOutputStream(desFile);
fos.write(decodeBytes);
fos.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
/**
* 读取文件 并 对文件进行Base64解码
* @param path 路径:"/storage/emulated/0/pimsecure_debug.txt"
* */
public static String setBase64ToFile(String path) {
File file = new File(path);
FileInputStream inputFile = null;
try {
inputFile = new FileInputStream(file);
byte[] buffer = new