【发布时间】:2014-04-11 08:23:16
【问题描述】:
这是我的代码:
import java.io.*;
public class WrappedWriter extends PrintWriter {
public WrappedWriter(OutputStream o){
super(o);
}
public WrappedWriter(File f) throws FileNotFoundException{
super(f);
}
public WrappedWriter(String s) throws FileNotFoundException{
super(s);
}
}
如您所见,PrintWriter 正在被此类扩展。在 WrappedWriter 类中,我继续创建一个字符串,我可以将其打印到终端或写入文件。有人告诉我,为了将其写入文件,我必须在此处的第二个和第三个构造函数中插入一些内容。我已经放了 super() 以调用父类,但我试图找出如何通过在构造函数中键入代码来编写最终到达文件 f 的字符串。谁能指出我正确的方向?这是我在交互模式下输入某些输入时应该发生的事情。
WrappedWriter out = new WrappedWriter(System.out)
out = new WrappedWriter("gettysburg.txt");
out.println("Four score and seven years ago our fathers brought forth, upon this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.")
out.close();
在输入out.close后,它应该将字符串写入文件gettysburg.txt,但它没有这样做。
【问题讨论】:
-
对不起,我不知道你在问什么。如果
f是一个文件,而你用new WrappedWriter(f)构造了一个WrappedWriter,那么你还没有String。所以无论你想做什么,它可能都不涉及向构造函数添加任何东西。 -
您的问题非常不清楚,但您可能不应该扩展 PrintWriter。您应该改用 PrintWriter。
标签: java inheritance constructor overriding