关于线程池如何使用,请看我上一篇博客ThreadPoolExecutor线程池的使用,本次文件加解密主要用到了线程的Futrue接口,通过Futrue的get()方法进行阻塞,完成了文件解密后的顺序写入。废话不多说,直接上代码。
一、以下为文件加解密的代码
直接调用即可完成文件的加解密。
//每次分割文件的大小,单位M(默认1M,避免内存溢出)
private final static int spitSize = (1024*1024);
/**
* 文件解密接口
* @param file 待加密的文件
* @param outFile 密文文件
* @param key 对称密钥的key
* @param alg 加密算法
* @param iv 初始向量
*/
public static void encryptFile(File file, File outFile, byte[] key, Algorithm alg, byte[] iv){
InputStream fileInput = null;
try {
fileInput = new FileInputStream(file);
} catch (FileNotFoundException e) {
throw new CryptoException("文件加密的,输出文件