1. 程式人生 > >RandomAccessFile類進行文件加密

RandomAccessFile類進行文件加密

int 緩沖 stat rda 文件讀寫 des found port courier

文件加密/解密示例。

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類進行文件加密