【问题标题】:Can we replace "out" in System.out.println()?我们可以替换 System.out.println() 中的“out”吗?
【发布时间】:2014-11-25 14:26:04
【问题描述】:

首先我很遗憾,因为我问了一个非常基本和特殊的问题;但我对 Java 和编程都是新手。我研究了 system.out.println() 中的“out”是系统类的对象。“out”可以替换为系统类的任何其他对象吗?如果是的话,成员是什么?怎么做???

【问题讨论】:

标签: java


【解决方案1】:

您可以在任何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】:

    这里有 2 个非常有用的链接(希望对您有所帮助)

    1. Javapapers: system.out.print
    2. http://docs.oracle.com/javase/7/docs/api/java/lang/System.html

    下面是它的简短描述:

    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) {}
        }
       }
    

    【讨论】:

      【解决方案3】:

      是的

      System.setOut(out) 就是这样做的。

      其中out 可以是PrintStream 的任何实例。

      例如:

      System.setOut(System.err); 会将默认输出流设置为与默认错误流相同。

      【讨论】:

      • “可以将“out”替换为系统类的任何其他对象吗?”,而不是“我可以用自己的对象替换out吗?”
      【解决方案4】:

      是的。您可以使用不同的关键字如 System.err.println() 或 system.in 和 different ,您可以在此链接中的http://javapapers.com/core-java/system-out-println/ 获得完整的视图,您可以为您提供完整的教程。

      【讨论】:

        【解决方案5】:

        是的,例如错了

        但我会下载任何 Java IDE(Intellij IDEA 或 Ecliplse),创建一个新的 Java 项目、新类、新的 main 方法,输入 System.out 并按 Ctrl + Space 看看会发生什么

        【讨论】:

        • 您为什么要特别声明使用 IDE(文档有时难以调出且键盘映射不同)?标准的 javadoc 还不够吗?
        • 你可以玩IDE。他是个新手。
        猜你喜欢
        • 1970-01-01
        • 2017-06-24
        • 1970-01-01
        • 2018-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-15
        • 2017-07-09
        相关资源
        最近更新 更多