虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式。如果虚拟机从一个交互式命令行开始启动,且没有重定向标准输入和输出流,那么其控制台将存在,并且通常连接到键盘并从虚拟机启动的地方显示。如果虚拟机是自动启动的(例如,由后台作业调度程序启动),那么它通常没有控制台。
如果此虚拟机具有控制台,那么它将由此类唯一的实例(可通过调用 System.console() 方法获得)表示。如果没有可用的控制台设备,那么对该方法的调用将返回 null。
读写 *** 作是同步的,以保证关键 *** 作能完整地完成;因此调用方法 readLine()、readPassword()、format()、printf() 以及对 reader() 和 writer() 返回对象的读取、格式化和写入 *** 作在多线程情况下可能阻塞。
在 reader() 和 writer() 返回的对象上调用 close() 不会关闭这些对象的底层流。
在到达控制台输入流的尾部时,如键入 control-D (Unix) 或键入 control-Z (Windows),读取控制台的方法将返回 null。如果之后在控制台输入设备上输入了其他字符,则后续读取 *** 作将成功执行。
除非另行指定,否则将 null 参数传递给此类中的任何方法都会抛出 NullPointerException。
安全注释: 如果应用程序需要读取密码或其他安全数据,则它应该使用 readPassword() 或 readPassword(String, Object...),并在执行后手工将返回的字符数组归零,以最大限度地缩短内存中敏感数据的生存期。
Console cons
char[] passwd
if ((cons = System.console()) != null &&
(passwd = cons.readPassword("[%s]", "Password:"))!= null) {
...
java.util.Arrays.fill(passwd, ' ')
}
public class ConsoleApp{public static void main(String[] args){
System.out.println(args)
}
}
在控制台的调用方式:
java ConsoleApp ("hello", "china", "th")
System.out.println(a[i]+“-”)
这句输出会自动换行,换个吧,用System.out.print();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)