java console 交互,java - console.writeline和System.out.println

首先,我担心你的问题包含一些错误。 类Console中没有方法writeline。 相反,类Console提供了返回PrintWriter的方法writer()。 这个打印作者有println()。

现在有什么区别

System.console().writer().println("hello from console");

System.out.println("hello system out");

如果从命令行运行应用程序,我认为没有区别。 但是,如果控制台不可用,System.console()将返回null,而System.out仍然存在。 如果您调用应用程序并执行STDOUT重定向到文件,则可能会发生这种情况。

这是我刚刚实现的一个例子。

import java.io.Console;

public class TestConsole {

public static void main(String[] args) {

Console console = System.console();

System.out.println("console=" + console);

console.writer().println("hello from console");

}

}

当我从命令提示符运行应用程序时,我得到以下内容:

$ java TestConsole

console=java.io.Console@93dcd

hello from console

但是当我将STDOUT重定向到文件时......

$ java TestConsole >/tmp/test

Exception in thread "main" java.lang.NullPointerException

at TestConsole.main(TestConsole.java:8)

第8行是console.writer().println()。

这是/ tmp / test的内容

console=null

我希望我的解释有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值