【发布时间】:2017-09-20 23:22:37
【问题描述】:
这个游戏就像FizzBuzz,但你可以看到不同的单词。
我需要在调用时将“Nardo”的结果同时打印到输出(System.out.println)和文件中。
我为 FizzBuzz 游戏制作了 2 个类,另一个用于将一些文本发送到文件中。这个工作正常,但我不知道如何将它与 FizzBuzz 类结合起来。
我刚刚在 FizzBuzz 中调用了 OutputToFile 类,但我不知道如何继续。
1) 头等舱
public class BaroSello {
private OutputToFile outputfile = new OutputToFile();
for(int i=1; i<input; i++){
if ((i % 3 == 0 && i % 5 == 0))
System.out.println("BaroSello");
else if (i % 3 == 0)
System.out.println("Baro");
else if (i % 5 == 0)
System.out.println("Sello");
else if (i%7==0)
// here I need the output to file and to terminal
System.out.println("Nardo");
else
System.out.println(i);
}
}
2) 二等舱
public class OutputToFile {
public static void main(String[] args) {
try {
PrintStream myconsole = new PrintStream(new File("/Users/xxx/Desktop/output.txt"));
System.setOut(myconsole);
myconsole.println("hello");
} catch (FileNotFoundException fx) {
System.out.println(fx);
}
}
}
【问题讨论】:
-
编写一个扩展 PrintStream 的类,该类可写入控制台和文件。将 System.setOut() 方法与您的类的实例一起使用。
-
您可以相对容易地将
System.out(和System.err)重定向到不同的PrintStreams,诀窍是,正如您所说,您想将其发送到两个不同的位置 - @987654321 @ 基本上是这样做的,虽然它旨在将输出打印到 GUI,但基本思想是相同的。我还会考虑查看几乎任何日志 API,它也可以做到这一点