本帖最后由 黎健东 于 2012-8-13 04:47 编辑
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- public class EncryptDemo {
- public static void main(String[] args) throws IOException {
- //读取a文件,把加密内容存到list中
- //用Byte型是因为要将缓冲存进来
- List<Byte> list = new ArrayList<Byte>();
- BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
- "c:\\a.txt"));
- read(list, bis);
- //将list中的加密内容写到b文件中
- BufferedOutputStream bos = new BufferedOutputStream(
- new FileOutputStream("c:\\b.txt"));
- write(list, bos);
-
- //读取b文件,把解密内容存到list2中
- List<Byte> list2 = new ArrayList<Byte>();
- BufferedInputStream bis2 = new BufferedInputStream(new FileInputStream(
- "c:\\b.txt"));
- read(list2, bis2);
-
- //将list2中的加密内容写到c文件中
- BufferedOutputStream bos2 = new BufferedOutputStream(
- new FileOutputStream("c:\\c.txt"));
- write(list2, bos2);
- }
- /**
- * @param list
- * @param bos
- * @throws IOException
- */
- public static void write(List<Byte> list, BufferedOutputStream bos)
- throws IOException {
- for (Byte bt : list) {
- bos.write(bt);
- }
- bos.close();
- }
- /**
- * @param list
- * @param bis
- * @throws IOException
- */
- public static void read(List<Byte> list, BufferedInputStream bis)
- throws IOException {
- int r = 0;
- //缓存
- byte[] data = new byte[1024];
- //麻烦抒写规范,while循环就算一条语句也要加括号
- while ((r = bis.read(data)) != -1)
- {
- for(byte bt : data){
- //这里是你的加密
- bt ^= 123;
- //把加密文件存到list中
- list.add(bt);
- }
- }
- bis.close();
- }
- }
复制代码 上面的代码是根据楼主的代码修改的
因为楼主的文件是ape,不好做演示,所以改成txt,你改成ape也行,一样用
上面的代码用了楼主想要用的加密、list存储,还有新增了缓冲
基本都应该看得明白的,不明白再提出。
特别指出,楼主的代码书写/排版很不规范,希望改进。
|