Java 编写一个控制台(Console)程序,从一组字符串(“hello”, “china”, “th

Java 编写一个控制台(Console)程序,从一组字符串(“hello”, “china”, “th,第1张

public class ConsoleApp{

public static void main(String[] args){

System.out.println(args)

}

}

控制台的调用方式:

java ConsoleApp ("hello", "china", "th")

java.io

类 Console

java.lang.Object

java.io.Console

所有已实现的接口:

Flushable

--------------------------------------------------------------------------------

public final class Consoleextends Objectimplements Flushable此类包含多个方法,可访问与当前 Java 虚拟机关联的基于字符的控制台设备(如果有)。

虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式。如果虚拟机从一个交互式命令行开始启动,且没有重定向标准输入和输出流,那么其控制台将存在,并且通常连接到键盘并从虚拟机启动的地方显示。如果虚拟机是自动启动的(例如,由后台作业调度程序启动),那么它通常没有控制台。

如果此虚拟机具有控制台,那么它将由此类唯一的实例(可通过调用 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, ' ')

}

从以下版本开始:

1.6

--------------------------------------------------------------------------------

方法摘要

void flush()

刷新控制台,并强制立即写入所有缓冲的输出。

Console format(String fmt, Object... args)

使用指定格式字符串和参数将格式化字符串写入此控制台的输出流中。

Console printf(String format, Object... args)

使用指定格式字符串和参数将格式化字符串写入此控制台输出流的便捷方法。

Reader reader()

获取与此控制台关联的唯一 Reader 对象。

String readLine()

从控制台读取单行文本。

String readLine(String fmt, Object... args)

提供一个格式化提示,然后从控制台读取单行文本。

char[] readPassword()

从控制台读取密码,禁用回显。

char[] readPassword(String fmt, Object... args)

提供一个格式化提示,然后从控制台读取密码,禁用回显。

PrintWriter writer()

获取与此控制台关联的唯一 PrintWriter 对象。

从类 java.lang.Object 继承的方法

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

方法详细信息

writer

public PrintWriter writer()获取与此控制台关联的唯一 PrintWriter 对象。

返回:

与此控制台关联的 Printwriter

--------------------------------------------------------------------------------

reader

public Reader reader()获取与此控制台关联的唯一 Reader 对象。

此方法仅供复杂应用程序(例如,利用 Scanner 提供的丰富分析/扫描功能的 Scanner 对象)使用:

Console con = System.console()

if (con != null) {

Scanner sc = new Scanner(con.reader())

...

}

对于只需按行读取的简单应用程序,使用 readLine(java.lang.String, java.lang.Object...)。

每次调用时,对返回对象的批量读取 *** 作 read(char[]) 、read(char[], int, int) 和 read(java.nio.CharBuffer) 不会读入行边界之外的字符,即使目标缓冲区还有可容纳更多字符的空间。下列字符之一被认为是行边界:换行 ('\n')、回车 ('\r')、回车后紧跟换行,或者流末尾。

返回:

与此控制台关联的 reader

--------------------------------------------------------------------------------

format

public Console format(String fmt,

Object... args)使用指定格式字符串和参数将格式化字符串写入此控制台的输出流中。

参数:

fmt - 格式字符串语法中描述的格式字符串

args - 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的数量是可变的,并且可以为零。参数的最大数量受到 Java 虚拟机规范定义的 Java 数组最大维数的限制。null 参数的行为取决于转换。

返回:

此控制台

抛出:

IllegalFormatException - 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的详细信息部分。

--------------------------------------------------------------------------------

printf

public Console printf(String format,

Object... args)使用指定格式字符串和参数将格式化字符串写入此控制台输出流的便捷方法。

此方法 con.printf(format, args) 形式的调用与以下调用的行为完全相同:

con.format(format, args).

参数:

format - 格式字符串语法中描述的格式字符串。

args - 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的数量是可变的,并且可以为零。参数的最大数量受到 Java 虚拟机规范定义的 Java 数组最大维数的限制。null 参数的行为取决于转换。

返回:

此控制台

抛出:

IllegalFormatException - 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的详细信息部分。

--------------------------------------------------------------------------------

readLine

public String readLine(String fmt,

Object... args)提供一个格式化提示,然后从控制台读取单行文本。

参数:

fmt - 格式字符串语法中描述的格式字符串。

args - 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的最大数量受到 Java 虚拟机规范定义的 Java 数组最大维数的限制。

返回:

包含从控制台读取的行的字符串,该字符串不包含任何行终止符;如果已到达流的末尾,则返回 null。

抛出:

IllegalFormatException - 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的详细信息部分。

IOError - 如果发生 I/O 错误。

--------------------------------------------------------------------------------

readLine

public String readLine()从控制台读取单行文本。

返回:

包含从控制台读取的行的字符串,该字符串不包含任何行终止符;如果已到达流的末尾,则返回 null。

抛出:

IOError - 如果发生 I/O 错误。

--------------------------------------------------------------------------------

readPassword

public char[] readPassword(String fmt,

Object... args)提供一个格式化提示,然后从控制台读取密码,禁用回显。

参数:

fmt - 提示文本的格式字符串语法中描述的格式字符串。

args - 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的最大数量受到 Java 虚拟机规范定义的 Java 数组最大维数的限制。

返回:

包含从控制台读取的密码的字符数组,该字符数组不包含任何行终止符;如果已到达流的末尾,则返回 null。

抛出:

IllegalFormatException - 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的详细信息部分。

IOError - 如果发生 I/O 错误。

--------------------------------------------------------------------------------

readPassword

public char[] readPassword()从控制台读取密码,禁用回显。

返回:

包含从控制台读取的密码的字符数组,该字符数组不包含任何行终止符;如果已到达流的末尾,则返回 null。

抛出:

IOError - 如果发生 I/O 错误。

--------------------------------------------------------------------------------

flush

public void flush()刷新控制台,并强制立即写入所有缓冲的输出。

指定者:

接口 Flushable 中的 flush

System.out.println(a[i]+“-”)

这句输出会自动换行,换个吧,用System.out.print();


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11452165.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存