/* * 練習問題20.3 p.454 * バイトを何らかの値とXORするなど、どのようなアルゴリズムでも良いので、 * バイトを暗号化する一組のFilterストリームクラスであるDecryptInputStreamとEncryptOutputStreamを * 作成しなさい。 * DecryptInputStreamは、EncryptOutputStreamクラスが生成したバイトを復号化します。 */ package ch20.ex20_03; import java.io.FilterReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; public class DecryptInputStream extends FilterReader { protected DecryptInputStream(Reader in) { super(in); } public int read() throws IOException { int c = super.read(); if (c != -1) { return c^7; } else { return -1; } } public static void main(String[] args) throws IOException { StringReader src = new StringReader("test"); FilterReader f = new DecryptInputStream(src); int c; while ((c = f.read()) != -1) { System.out.print((char)c); } System.out.println(); } }