コードを書き直して、まったく同じことを行うクラス内のメソッドの数を減らしたいのですが、ファイルまたはコンソールに書き込むことで、次のようなことができます。
PrintFlightSchedule(String aFileName); // prints to a file
PrintFlightSchedule(); // writes to console.
達成しようとしていることを実証するために、抽象 OutputStream を定義し、それを PrintStream またはコンソール (System.out 経由) としてインスタンス化することによって、次のテスト メソッドを作成しようとしました。
public static void testOutputStream(String fileNm, String msg) {
OutputStream os;
if (fileNm.equals("") ) { // No file name provided, write to console
os = System.out;
}
// File name provided, write to this file name
else {
try {
os = new FileOutputStream(fileNm);
}
catch (FileNotFoundException fe) {
System.out.println("File not found " + fe.toString());
}
}
// Use the output stream here - ideally println method?
// os.println or write(6);
}
これは確かに中途半端ですが、私が何を達成したいのかがわかります。
Javaで実行時に出力メソッド(ファイルまたはコンソール)を定義する方法はありますか?実行時に同じメソッドを使用して実行できますか? FileOutputStream をコンソールにリダイレクトするのが簡単な方法だと思います-それは可能ですか?