我有一个打印出一些文本输出的Java程序.实际上我的简单PrintOutput功能就像
System.out.println("some output");
Run Code Online (Sandbox Code Playgroud)
但我想声明一个变量
printonfile = true
Run Code Online (Sandbox Code Playgroud)
如果设置为true,则将输出打印到文本文件;如果设置为false,则输出到屏幕(控制台).
我如何将out分配给文件而不是System.out,以避免产生类似的东西
if (printonfile) {
myfile.out("some output");
}
else {
System.out.println("some output");
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在我的函数开头声明一个"输出"变量,所以我可以为它分配标准输出(控制台)或文本文件?
谢谢
Rom*_*man 10
您已经描述了策略设计模式的典型用例.
创建一个接口Printer,使2个实现ConsolePrinter和FilePrinter,并使用正确的取决于你的情况.
interface Printer {
void print(String msg);
}
class ConsolePrinter implements Printer {
public void print(String msg) {
System.out.print(msg);
}
}
class FilePrinter implements Printer {
private final FileWriter fileWriter;
public FilePrinter(File file) {
this.fileWriter = new FileWriter(file); //here you should do some exceptions handling
}
public void print(String msg) {
fileWriter.write(msg); //here you should also care about exceptions
fileWriter.flush();
}
}
Printer chosenPrinter = printOnFile ? new FilePrinter(file) : new ConsolePrinter();
chosenPrinter.print("Hello");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3914 次 |
| 最近记录: |