我正在实施自己的FilterWriter。是否有一个FilterWriter的write / append方法,所有其他的write / append实现都会调用它? 所以我不必覆盖所有方法,只需覆盖例如`void write(int c)。
答案 0 :(得分:2)
如果扩展FilterWriter,则需要覆盖其三种方法:
public void write(char[] buffer, int offset, int count) throws IOException;
public void write(int oneChar) throws IOException;
public void write(String str, int offset, int count) throws IOException;
如果实现Writer类,则需要覆盖单个方法。
public abstract void write(char[] buf, int offset, int count) throws IOException;
您可以在Java源代码中找到此方法。
答案 1 :(得分:1)
是否有一个FilterWriter的写入/追加方法 所有其他写/附加实现都要求它?
是的,write(char[] buf, int offset, int count)。但是不建议只使用这个,因为如果你想要像int
那样写基元,你必须将其转换为char-Array
。
这就是为什么像write(int)
这样的其他方法可以进行投射。否则你将不得不编写这样的代码;
write(new char[]{(char)myInt, ...}, 0, 1);
如果你想写一些原语和字符串,情况会更糟。
append(...)方法只调用write(...)方法。像这样:
public Writer append(CharSequence csq) throws IOException {
if (csq == null)
write("null");
else
write(csq.toString());
return this;
}
这些也应该被覆盖
简而言之,如果您只使用一个write
或append
方法,最后您会遇到更多代码和麻烦。在设计课程时,更好地正确实施它们。
答案 2 :(得分:-1)
将true作为第二个参数传递给FileWriter以打开"追加"模式。
fout = new FileWriter("filename.txt", true);
FileWriter使用参考