本帖最后由 赵茹艳 于 2012-5-14 16:01 编辑
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
public class SecertExercise {
public static void main(String[] args) throws IOException {
BufferedInputStream bis = new BufferedInputStream (new FileInputStream("MiuMiu.jpg"));
List <Integer>list = new LinkedList<Integer>();
int b ;
while ((b = bis.read()) != -1){
list.add(b^123);
}
bis.close();
BufferedOutputStream bos = new BufferedOutputStream (new FileOutputStream("MiuMiu.jpg"));
//增强for循环遍历集合list,写入bos
for (Integer i : list) {
bos.write(i);
}
//list也是可以用普通for循环遍历的,但此处为什么用普通for循环不行?通过打印语句发现程序不结束,因为什么?
//又实验了下,用这种普通for循环对txt文件进行加密可以达到效果,而对jpg的文件进行加密就会出现循环不结束的现象,
//请问高手是什么原因
// for (int i = 0; i < list.size(); i++){
// bos.write(list.get(i));
// System.out.println(list.get(i));
// }
bos.close();
}
}
|