Pdf与Base64编码之间的转换
2015-08-03 22:09
369 查看
在我们的工作有时候我们需要将图片或者pdf文件转换为Base64编码,然后从服务器端下载传输到本地,在这里我列举下两者之间的转换方法:
Base64编码转换为pdf:
pdf转换为Base64编码:
我们在直接使用这两个类的时候,Eclipse会报错:
BASE64Encoder encoder = new sun.misc.BASE64Encoder();
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
解决方法如下:
右击项目—->build path—–>configure build path
点击OK,保存
Base64编码转换为pdf:
/** * Description: 将base64编码内容转换为Pdf * @param base64编码内容,文件的存储路径(含文件名) * @Author fuyuwei * Create Date: 2015年7月30日 上午9:40:23 */ public static void base64StringToPdf(String base64Content,String filePath){ BASE64Decoder decoder = new BASE64Decoder(); BufferedInputStream bis = null; FileOutputStream fos = null; BufferedOutputStream bos = null; try { byte[] bytes = decoder.decodeBuffer(base64Content);//base64编码内容转换为字节数组 ByteArrayInputStream byteInputStream = new ByteArrayInputStream(bytes); bis = new BufferedInputStream(byteInputStream); File file = new File(filePath); File path = file.getParentFile(); if(!path.exists()){ path.mkdirs(); } fos = new FileOutputStream(file); bos = new BufferedOutputStream(fos); byte[] buffer = new byte[1024]; int length = bis.read(buffer); while(length != -1){ bos.write(buffer, 0, length); length = bis.read(buffer); } bos.flush(); } catch (Exception e) { e.printStackTrace(); }finally{ closeStream(bis, fos, bos); } }
pdf转换为Base64编码:
/** * Description: 将pdf文件转换为Base64编码 * @param 要转的的pdf文件 * @Author fuyuwei * Create Date: 2015年8月3日 下午9:52:30 */ public static String PDFToBase64(File file) { BASE64Encoder encoder = new BASE64Encoder(); FileInputStream fin =null; BufferedInputStream bin =null; ByteArrayOutputStream baos = null; BufferedOutputStream bout =null; try { fin = new FileInputStream(file); bin = new BufferedInputStream(fin); baos = new ByteArrayOutputStream(); bout = new BufferedOutputStream(baos); byte[] buffer = new byte[1024]; int len = bin.read(buffer); while(len != -1){ bout.write(buffer, 0, len); len = bin.read(buffer); } //刷新此输出流并强制写出所有缓冲的输出字节 bout.flush(); byte[] bytes = baos.toByteArray(); return encoder.encodeBuffer(bytes).trim(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { fin.close(); bin.close(); bout.close(); } catch (IOException e) { e.printStackTrace(); } } return null; }
我们在直接使用这两个类的时候,Eclipse会报错:
BASE64Encoder encoder = new sun.misc.BASE64Encoder();
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
解决方法如下:
右击项目—->build path—–>configure build path
点击OK,保存
相关文章推荐
- PDFBox 介绍
- java socket编程实例代码讲解
- Android SDK下载网址
- MAVEN下实现spring boot打包成war包(spring boot 01)
- Git
- spark 源码阅读博客
- myeclipse web tomcat
- Shiny框架小结(1)
- 空指针、野指针、const、void
- 菜单栏 工具栏 没什么说的 ....努力
- c++ opencv显示对话框
- Linux OOM killer 机制
- 20150803-解析
- c++ opencv显示对话框
- 关于java ee 7 精粹
- opencv Mat读取图像元素时出现越界错误
- c++ opencv 入门
- c++ opencv 入门
- LeetCode DB : Delete Duplicate Emails
- 盗版win10升级win10正式版