【发布时间】:2014-11-25 14:26:04
【问题描述】:
首先我很遗憾,因为我问了一个非常基本和特殊的问题;但我对 Java 和编程都是新手。我研究了 system.out.println() 中的“out”是系统类的对象。“out”可以替换为系统类的任何其他对象吗?如果是的话,成员是什么?怎么做???
【问题讨论】:
标签: java
首先我很遗憾,因为我问了一个非常基本和特殊的问题;但我对 Java 和编程都是新手。我研究了 system.out.println() 中的“out”是系统类的对象。“out”可以替换为系统类的任何其他对象吗?如果是的话,成员是什么?怎么做???
【问题讨论】:
标签: java
您可以在任何PrintStream 上致电println()。如果你查看System javadoc,你会发现another PrintStream static field,即System.err。例如:
System.err.println("This goes to POSIX standard error!");
如果您想用自己的输出流实际替换标准输出,可以将流传递给System.setOut(PrintStream) 或相应的System.setErr(PrintStream)
【讨论】:
这里有 2 个非常有用的链接(希望对您有所帮助)
下面是它的简短描述:
Structure of System.out.println
以下是 JDK 源码中 System.out.println 的骨架结构。通过这段代码 sn-p 突出显示了重要部分并给出了更好的理解。
public final class System {
static PrintStream out;
static PrintStream err;
static InputStream in;
...
}
public class PrintStream extends FilterOutputStream {
//out object is inherited from FilterOutputStream class
public void println() {
...
}
改出 System.out.println
‘out’ 对象可以自定义。 out 在启动时由 java 运行时环境初始化,开发人员可以在执行期间对其进行更改。
在默认情况下,当您通过命令行运行程序时,输出不是标准输出,而是在同一命令窗口中打印。我们可以使用 setOut 方法改变这种行为,如下所示。
在下面的例子中
public class ChangeOut {
public static void main(String args[]) {
try {
System.setOut(new PrintStream(new FileOutputStream("log.txt")));
System.out.println("Now the output is redirected!");
} catch(Exception e) {}
}
}
【讨论】:
是的
System.setOut(out) 就是这样做的。
其中out 可以是PrintStream 的任何实例。
例如:
System.setOut(System.err); 会将默认输出流设置为与默认错误流相同。
【讨论】:
是的。您可以使用不同的关键字如 System.err.println() 或 system.in 和 different ,您可以在此链接中的http://javapapers.com/core-java/system-out-println/ 获得完整的视图,您可以为您提供完整的教程。
【讨论】:
是的,例如错了
但我会下载任何 Java IDE(Intellij IDEA 或 Ecliplse),创建一个新的 Java 项目、新类、新的 main 方法,输入 System.out 并按 Ctrl + Space 看看会发生什么
【讨论】: