gpt4 book ai didi

java - Java 中的 C++ 样式多态输出

转载 作者:行者123 更新时间:2023-11-28 02:13:15 25 4
gpt4 key购买 nike

在 C++ 中,我过去常常通过传递 std::ostream 对象来节省很多时间。例如,我不会将所有数据记录硬编码到 std::cout,而是像这样将 std::cout 作为函数的默认参数。

void func(std::ostream os = std::cout) {
...
os<<"Something";
...
}

那样的话,如果我想稍后将相同的数据打印到一个文件中,我可以通过调用 func(file) 来做到这一点,其中 file 是一个 std::ofstream.

我的问题是,在 Java 中,似乎没有任何执行 I/O 的统一方式。我需要将完全相同的一组数据打印到控制台和文件。我能做到的最简洁的方法是什么?如果我可以像以前使用 std::ostreamstd::ofstream 那样多态地做到这一点,那将是我的偏好,因为这是我习惯的。

最佳答案

因为 PrintStream 可以将文件名作为构造函数参数,所以我会这样简化 Paul 的回答:

void someMethod(PrintStream ps) {
ps.print(...);
ps.format(....);
// etc
}

someMethod(System.out); // Output to console
someMethod(new PrintStream("file.out", "UTF-8")); // Output to a file

Documentation here

关于java - Java 中的 C++ 样式多态输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34945850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com