import java.io.*; class MyFilter extends java.io.FilterWriter {
public MyFilter(Writer w) { super(w); }
public void write(String s, int off, int len) throws java.io.IOException {
s = s.replace('1', '2');
super.write(s, off, len);
} public void write(char[] cbuf, int off, int len) throws IOException {
String s= new String(cbuf);
this.write(s, off, len);
}
}
public class example2 {
public static void main(String args[]) {
FileWriter myFW = null;
try {
myFW = new FileWriter( "dogs.txt" );
} catch(IOException x) { System.err.println("IOExcpn: " + x); } FilterWriter filter = new MyFilter( myFW );
BufferedWriter BW = new BufferedWriter(filter);
PrintWriter myPW = new PrintWriter( BW );
myPW.println("101 Dalmatians");
myPW.close();
}
}
这里覆盖了FilterWriter的两个write()方法,我只是奇怪为什么,在执行myPW.close();语句时会自动调用public void write(char[] cbuf, int off, int len)方法呢(也就是MyFilter中第二个write()方法)?
解决方案 »
- asm字节码操作框架的开发
- 文件操作
- 在cmd里执行 bat 文件提示输入行太长,不应该有。。。
- JAVA在XP中连接数据库
- 怎么样用键盘上下键控制焦点在控件之间的移动
- ::::::::::请教 J2EE 1.4 SDK和J2SE 1.4.2 SDK有什么区别???::::::::::::::
- 关于try-catch语句处理异常~
- 什么叫哈希表?它主要是用来做什么的?
- web页面中用到applet,不知在html中用<object>标记还是用<applet>标记,两者有何区别?
- AnnotatedElement.getAnnotation()方法为什么会编译出错呢?
- JTable如何使用
- 求:数字签名(RSA算法)的Java实现
你可以在write方法中println一下,看看在close的时候write的是什么。