IO以及文件的加密解密
一直都是不敢去碰IO,因为我暑假回家前最后学的东西就是IO,当时感觉好难,特别难懂,就一直放着
现在避不过去了,自己敲敲代码感觉不过如此啊,不难,关键要明白大体的思路,其余是小事
1.思路
? 1).读取文件,需要文件输入流FileInputStream,它的一个构造函数也就是通常用到的方法需要一个文件的 ? ? ?地址作为参数,传入即可;
? ?2).实现文件的读取即从第一个字节读到最后一个字节,read方法里面又分几种,可以每次读一个byte,也 ? ? ? ?可以读byte数组,也可以什么参数也不加直接读取int字节;
? ? ?也可以用BufferedInputStream,这个以FileInputStream为对象,可以加快读取速度,其原理是在内存中开 ? ? ? ?辟缓冲区,每次读的时候读入几个字节,填满该缓冲区以后再将其写出释放掉,继续下一段字节的读入, ? ? ?从而节省时间,在大文件读取的时候可以加快速度。
? ? 3).最后读完以后,应该关掉输入输出流,对于FileInputStream和FileOuputStream的话要关掉,对于 ? ? ? ? ? ? ?BufferedInputStream流来说,类比水管,其中的一些小水滴要先挤出去,然后再关掉水管,就是先把缓冲 ? ? ?区里的东西挤出去,再把流关掉就可以了,好吧我真心觉得很形象啊。。。
2.什么也不说了,贴代码吧
? ?
public boolean writeFile(String srcfile,String destfile) throws IOException{InputStream iStream=new FileInputStream(srcfile);//BufferedInputStream bis=new BufferedInputStream(iStream);OutputStream ops=new FileOutputStream(destfile);//BufferedOutputStream bos=new BufferedOutputStream(ops);int i=0;while((i=iStream.read())!=-1){ i++; System.out.println("<>"+i+"<>"); ops.write(i);}iStream.close();//bos.flush();ops.close();System.out.println("<><><2><><>");return true;}}3.加密解密
? ?我做的很简单就是原来每个i都加1,然后解密的时候每个i减1就行。
? ?我的理解就是只要你可以解密回来,而别人又不能轻易的理解你的规则,你的解密就是成功的。
? ? ps:其中的i!=-1,其中的-1代表的是文件的末尾。
?