加密文件引入IO流
以前用C做了一个加密文件的小工具,很有成就感。
那么JAVA要怎么做呢。
有关\(API\)
连接点进去,着重理解各自的子类父类、基本原理
下文默认已了解。
字节与字符
要加密肯定是直接操作字节了。
但我们先看看JAVA常用的字符读入方式。
-
ISR 桥接 FIP (用BFR包装提速)
-
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("test.in")));
-
-
包装类FlieReader (继承自ISR)
-
FileReader in = new FileReader("test.in");
-
两个方式本质上是一样的,都是先通过 InputStream
(这里是子类 FIP
) 把字节读下来, 然后通过桥接器 InputStreamReader
转字节为字符。FR
只是把这个过程包装起来(源码很显然了)。
那么, 要读字节,直接用 FIP
即可。
FileInputStream fip = new FileInputStream("test.in");
迫真加密
当然,这里就不用什么高阶加密算法了,直接来个全部加 \(5\) 的加密!。
-
初始文件
遇到困难睡大觉
-
加密
加五public static void solve() throws IOException { File f = new File("C:\\Users\\lyh\\Desktop\\before2023\\test.in"); FileInputStream fip = new FileInputStream(f); byte[] b = fip.readAllBytes();//得到一串字节码,-128 ~ 127 for (int i = 0; i < b.length; i++) b[i] += 5;//逆天加密 fip.close(); FileOutputStream fop = new FileOutputStream(f); fop.write(b); fop.close(); }
-
加密文件
佧郝努芍写锅铭
-
解密
减五public static void solve() throws IOException { File f = new File("C:\\Users\\lyh\\Desktop\\before2023\\test.in"); FileInputStream fip = new FileInputStream(f); byte[] b = fip.readAllBytes();//得到一串字节码,-128 ~ 127 for (int i = 0; i < b.length; i++) b[i] -= 5;//逆天解密 fip.close(); FileOutputStream fop = new FileOutputStream(f); fop.write(b); fop.close(); }
-
解密文件
遇到困难睡大觉