RandomAccessFile類進行文件加密
文件加密/解密示例。
package io;
import java.io.*;
public class encrypt {
private File file; //存儲文件對象信息
byte[] buf; //緩沖區,存儲文件中的所有數據 RandomAccessFile fp;
//用參數filename指定的文件構造一個filed對象存儲
//同時為緩沖區buf分配與文件長度相等的存儲空間
public encrypt(String filename){
file=new File(filename);
buf=new byte[(int)file.length()];
}
public encrypt(File destfile){
file = destfile;
buf = new byte[(int)file.length()];
}
//按照讀寫的方式打開文件
public void openFile()throws FileNotFoundException{
fp=new RandomAccessFile(file,"rw");
}
//關閉文件
public void closeFile()throws IOException{
fp.close();
}
//對文件進行加密/解密
public void coding()throws IOException{
//將文件內容讀到緩沖區中 fp.read(buf);
//將緩沖區中的內容取反
for(int i=0;i<buf.length;i++)
buf[i]=(byte)(~buf[i]);
//將文件指針定位到文件頭部
fp.seek(0);
//將緩沖區中的內容寫入到文件中 fp.write(buf);
}
public static void main(String[] args) {
encrypt oa;
if(args.length<1){
System.out.println("你需要指定加密文件的名字!");
return;
}
try {
oa = new encrypt(args[0]);
oa.openFile();
oa.coding();
oa.closeFile();
System.out.println("文件加密成功!");
} catch (FileNotFoundException e) {
System.out.println("沒有找到文件:"+args[0]);
}catch (IOException e){
System.out.println("文件讀寫錯誤:"+args[0]);
}
}
}
RandomAccessFile類進行文件加密