/**
* 本地文件转换成Base64字符串
*/
public String convertFileToBase64(String Path) {
byte[] data = null
// 读取字节数组
try {
InputStream in = new FileInputStream(Path)
//System.out.println("文件大小(字节)="+in.available())
data = new byte[in.available()]
in.read(data)
in.close()
} catch (IOException e) {
e.printStackTrace()
}
//对字节数组进行Base64编码,得到Base64编码的字符串
BASE64Encoder encoder = new BASE64Encoder()
String base64Str = encoder.encode(data)
return base64Str
}
/**
* 将base64字符串,生成文件
*/
public void convertBase64ToFile(String fileBase64String, String filePath, String fileName) {
BufferedOutputStream bos = null
FileOutputStream fos = null
File file = null
try {
File dir = new File(filePath)
if (!dir.exists() && dir.isDirectory()) {//判断文件目录是否存在
dir.mkdirs()
}
BASE64Decoder decoder = new BASE64Decoder()
byte[] bfile = decoder.decodeBuffer(fileBase64String)
file = new File(filePath + File.separator + fileName)
fos = new FileOutputStream(file)
bos = new BufferedOutputStream(fos)
bos.write(bfile)
} catch (Exception e) {
e.printStackTrace()
} finally {
if (bos != null) {
try {
bos.close()
} catch (IOException e1) {
e1.printStackTrace()
}
}
if (fos != null) {
try {
fos.close()
} catch (IOException e1) {
e1.printStackTrace()
}
}
}
}