在C++中,我通過傳遞std::ostream
對象來節省大量時間。例如,我不會將所有數據記錄硬編碼爲std::cout
,而是使std::cout
成爲像這樣的函數的默認參數。Java中的C++風格多態輸出
void func(std::ostream os = std::cout) {
...
os<<"Something";
...
}
這樣,如果我想同樣的數據後打印到文件,我可以通過調用func(file)
其中file
是一個std::ofstream
做到這一點沒有問題。
我的問題是,在Java中,似乎沒有任何統一的I/O方式。我需要將完全相同的一組數據打印到控制檯和文件。我能做到的最簡潔的方式是什麼?如果我可以像std::ostream
和std::ofstream
那樣多態地做到這一點,這將是我的偏好,因爲這是我習慣的。
所以在Java中你有良好的日誌框架。如果你的目的是記錄,爲什麼要創造你自己的車輪。使用例如slf4j登錄你的東西,並做一個日誌配置,這給你更多的靈活性。 – Alex