在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