В C++ я использовал для сохранения себя много времени, пройдя около std::ostream
объектов. Вместо, например, жесткого кодирования всего моего журнала данных до std::cout
, я бы сделал std::cout
параметром по умолчанию для такой функции.Полиморфный вывод в стиле C++ в Java
void func(std::ostream os = std::cout) {
...
os<<"Something";
...
}
Таким образом, если я хотел напечатать те же данные в файл позже, я не мог сделать это без проблем, вызвав func(file)
где file
был std::ofstream
.
Моя проблема в том, что на Java не существует единого способа выполнения операций ввода-вывода. Мне нужно напечатать точно такой же набор данных на консоли и в файле. Каким образом я могу это сделать? Если я смогу сделать это полиморфно, как я использовал с std::ostream
и std::ofstream
, это было бы моим предпочтением, так как это то, к чему я привык.
поэтому в java у вас есть хорошие рамки ведения журнала. если ваша цель регистрируется, зачем изобретать собственное колесо. используйте, например, slf4j, записывайте свои вещи и создавайте конфигурацию ведения журнала, которая дает вам еще большую гибкость. – Alex