顺序不是关键,主要是缓冲的问题,这是因为没有重写close()方法导致的(好好看看java的I/O操作吧)。为自定义的类重写close()、flush()方法即可import java.io.IOException;
import java.io.OutputStream;//把a变成c,把b变成d,以此类推
class EncryptOutputStream extends OutputStream // 或者继承FilterOutputStream类
// 就可以随意组合。
{
private OutputStream os = null; public EncryptOutputStream(OutputStream os) {
this.os = os;
} public void write(int a) throws IOException {
System.out.println("OK");
a = a + 2;
if (a >= (97 + 26))
a = a - 26;
this.os.write(a);
} public void flush() throws IOException {
os.flush();
} public void close() {
try {
flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}