Java Base64 和 File 之间互转工具类

Java Base64 和 File 之间互转工具类

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.Base64;

public class Base64Util {

    // 文件转换成base64
    public static String encryptToBase64(String filePath) {
        if (filePath == null) {
            return null;
        }
        try {
            byte[] b = Files.readAllBytes(Paths.get(filePath));
            return Base64.getEncoder().encodeToString(b);
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }

    // base64转化成文件
	public static File decryptByBase64(String base64, String filePath) {
		if (base64 == null && filePath == null) {
			return null; // 返回null表示生成文件失败
		}
		try {
			byte[] decodedBytes = Base64.getDecoder().decode(base64); // 解码Base64字符串
			File file = new File(filePath); // 创建一个新的文件对象
			Files.write(file.toPath(), decodedBytes, StandardOpenOption.CREATE); // 将字节数组写入文件
			return file; // 返回文件对象
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null; // 如果发生异常,也返回null
	}


    // 读取保存在文件中的内容
    public static String readFileContent(String fileName) {
        File file = new File(fileName);
        BufferedReader reader = null;
        StringBuffer sbf = new StringBuffer();
        try {
            reader = new BufferedReader(new FileReader(file));
            String tempStr;
            while ((tempStr = reader.readLine()) != null) {
                sbf.append(tempStr);
            }
            reader.close();
            return sbf.toString();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
        return sbf.toString();
    }
	
	
	
	
	


public class Test {

    public static void main(String[] args) throws IOException {
        // 创建一个Base64Util对象,用于调用工具类中的方法
        
        Base64Util base64Util = new Base64Util();

        // 将文件转换成Base64字符串
        
        String inputfile = "C:\\Users\\John\\Desktop\\Files.zip";
        String outputfile = "C:\\Users\\John\\Desktop\\encoded.txt";
        String encodedString = base64Util.encryptToBase64(inputfile);
        // 将Base64字符串写入文件
        
        Files.write(Paths.get(outputfile), encodedString.getBytes());

        // 从文件中读取Base64字符串
        
        String encodedfilecontent = base64Util.readFileContent(outputfile);
        // 将Base64字符串解码成文件
       
        String decodedfile = "C:\\Users\\John\\Desktop\\DecodedFiles.zip";
        File decodedFile = base64Util.decryptByBase64(encodedfilecontent, decodedfile);

        // 打印输出结果
        
        System.out.println("Encoded string: " + encodedString);
        System.out.println("Decoded file: " + decodedFile.getAbsolutePath());
    }
}	
}

你可能感兴趣的:(java,java,python,开发语言)