package com.util.common; /** * @author xudi * @date 2021/8/9 */ import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; public class Base64Convert { BASE64Decoder decoder = new BASE64Decoder(); public String ioToBase64() throws IOException { String fileName = "C:\\Users\\28458\\Documents\\code.rar"; //源文件 File file = new File(fileName); FileInputStream inputFile = new FileInputStream(file); byte[] buffer = new byte[(int) file.length()]; inputFile.read(buffer); inputFile.close(); return new BASE64Encoder().encode(buffer); } public String base64ToStr() throws IOException { String fileName = "C:\\Users\\28458\\Documents\\code.txt"; //源文件 String strBase64 = null; try { InputStream in = new FileInputStream(fileName); // in.available()返回文件的字节长度 byte[] bytes = new byte[in.available()]; // 将文件中的内容读入到数组中 in.read(bytes); strBase64 = new String(bytes); //将字节流数组转换为字符串 in.close(); } catch (FileNotFoundException fe) { fe.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } return strBase64; } public void decoderBase64File(String base64Code) throws Exception { File file = new File("C:\\Users\\28458\\Documents\\"); if(file.exists()==false){ file.mkdirs(); } byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code); FileOutputStream out = new FileOutputStream("C:\\Users\\28458\\Documents\\1.rar"); out.write(buffer); out.close(); } public void base64ToIo(String strBase64) throws IOException { String string = strBase64; String fileName = "C:\\Users\\28458\\Documents\\1.jpg"; //生成的新文件 try { // 解码,然后将字节转换为文件 byte[] bytes = new BASE64Decoder().decodeBuffer(string); //将字符串转换为byte数组 ByteArrayInputStream in = new ByteArrayInputStream(bytes); byte[] buffer = new byte[1024]; FileOutputStream out = new FileOutputStream(fileName); int bytesum = 0; int byteread = 0; while ((byteread = in.read(buffer)) != -1) { bytesum += byteread; out.write(buffer, 0, byteread); //文件写操作 } } catch (IOException ioe) { ioe.printStackTrace(); } } public static void main(String[] args) throws Exception { Base64Convert convert = new Base64Convert(); System.out.println(convert.ioToBase64()); //System.out.println(convert.base64ToStr()); // convert.base64ToIo(convert.base64ToStr()); } }
2021-08-09
最新推荐文章于 2021-08-24 16:09:00 发布
本文介绍了如何使用Java实现Base64编码和解码功能,包括将文件转换为Base64字符串,从Base64字符串还原文件,以及文件的Base64编码解码操作。主要涉及`sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`的使用。
摘要由CSDN通过智能技术生成