码迷,mamicode.com
首页 > 数据库 > 详细

RandomAccessFile类进行文件加密

时间:2017-09-02 12:12:49      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:exception   读写   dex   length   random   pre   头部   java   out   

文件加密/解密示例。

 

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类进行文件加密

标签:exception   读写   dex   length   random   pre   头部   java   out   

原文地址:http://www.cnblogs.com/m2492565210/p/7466098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!