import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FileEncAndDecUtil {private static final int numOfEncAndDec = 0x99; //加密解密秘钥 2进制 99private static int dataOfFile = 0; //文件字节内容public static void main(String[] args) {// String srcFilePath = "C:\\Users\\Administrator\\Desktop\\enc\\1.txt"; //初始文件路径
// String encFilePath = "C:\\Users\\Administrator\\Desktop\\enc\\22.txt"; //加密文件路径
// String decFilePath = "C:\\Users\\Administrator\\Desktop\\enc\\33.txt"; //解密文件路径String srcFilePath = "C:/Users/Administrator/Desktop/enc/1.txt"; //初始文件路径String encFilePath = "C:/Users/Administrator/Desktop/enc/22.txt"; //加密文件路径String decFilePath = "C:/Users/Administrator/Desktop/enc/33.txt"; //解密文件路径try {EncFile(srcFilePath, encFilePath); //加密操作DecFile(encFilePath, decFilePath); //加密操作} catch (Exception e) {e.printStackTrace();} }/*** 文件加密* @param srcFilePath 初始文件路径* @param encFilePath 加密文件路径* @throws Exception*/
public static void EncFile(File srcFile, File encFile) throws IOException {if (!srcFile.exists()) {System.out.println("source file not exixt");return;}if (!encFile.exists()) {System.out.println("encrypt file created");encFile.createNewFile();}InputStream fis = new FileInputStream(srcFile);OutputStream fos = new FileOutputStream(encFile);try {byte[] buf = new byte[1024*64];while (true){int readBytes = fis.read(buf);if(readBytes == -1)break;fos.write(buf, 0, readBytes);}} finally {fis.close();fos.flush();fos.close();}
}
/*** 解密文件* @param encFilePath 加密文件路径* @param decFilePath 解密文件路径* @throws Exception*/private static void DecFile(String encFilePath, String decFilePath) throws Exception {File encFile = new File(encFilePath);File decFile = new File(decFilePath);if(!encFile.exists()){System.out.println("encrypt file not exixt");return;}if(!decFile.exists()){System.out.println("decrypt file created");decFile.createNewFile();}InputStream fis = new FileInputStream(encFile);OutputStream fos = new FileOutputStream(decFile);while ((dataOfFile = fis.read()) > -1) {fos.write(dataOfFile^numOfEncAndDec);}fis.close();fos.flush();fos.close();}}