我想重写并简化我的代码,以减少类中执行完全相同但写入文件或控制台的方法的数量,以便我可以执行以下操作:
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 重定向到控制台 - 这可能吗?