2014-11-24 41 views
0

首先,我很遗憾,因为我提出了一个非常基本和奇怪的问题;但是我对Java和编程都很陌生。我研究了system.out.println()中的“out”是系统类的一个对象。可以将“out”替换为系统类的任何其他对象吗?如果是这样的成员和如何?我们可以在System.out.println()中替换“out”吗?

+0

https://docs.oracle.com/javase/7/docs/api/java/lang/System.html – 2014-11-24 11:27:52

回答

0

System.setOut(out)做到了这一点。可以是PrintStream的任何实例。

例如:

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

+0

“可以 “走出去” 与其他任何替换系统类的对象?“,而不是”我可以用我自己的对象替换吗?“ – hexafraction 2014-11-24 11:28:20

-1

是,例如ERR

但我会下载任何的Java IDE(IntelliJ IDEA的或Ecliplse)的,创建一个新的Java项目,新的阶级,新的主要方法,类型System.out和按Ctrl +空格,看看会发生什么

+0

你为什么要专门声明使用IDE(其中有时文件有时挑剔以提高和键盘映射不同)?标准的javadoc不够吗? – hexafraction 2014-11-24 11:30:31

+0

你可以玩IDE。他是一个新手。 – user831217 2014-11-24 14:20:29

1

这里有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的骨架结构。通过这个代码片段,重要部分被突出显示,并给出更好的理解。

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