树叶云鸿蒙OS教程:鸿蒙OS Console

Console

java.lang.Object

|—java.io.Console

public final class Console
extends Object
implements Flushable

访问与当前 Java 虚拟机关联的基于字符的控制台设备(如果有)的方法。

虚拟机是否具有控制台取决于底层平台以及调用虚拟机的方式。 如果虚拟机从交互式命令行启动而不重定向标准输入和输出流,那么它的控制台将存在,并且通常会连接到启动虚拟机的键盘和显示器。 如果虚拟机是自动启动的,例如通过后台作业调度程序,那么它通常不会有控制台。

如果这个虚拟机有一个控制台,那么它由这个类的一个唯一实例表示,可以通过调用 System.console() 方法获得。 如果没有可用的控制台设备,则调用该方法将返回 null。

读写操作同步,保证关键操作的原子完成; 因此,调用方法 readLine()、readPassword()、format()、printf() 以及对 reader() 和 writer() 返回的对象的读取、格式化和写入操作可能会在多线程场景中阻塞。

对 reader() 和 writer() 返回的对象调用 close() 不会关闭这些对象的底层流。

当到达控制台输入流的末尾时,控制台读取方法返回 null,例如通过在 Unix 上键入 control-D 或在 Windows 上键入 control-Z。 如果稍后在控制台的输入设备上输入其他字符,则后续读取操作将成功。

除非另有说明,否则将 null 参数传递给此类中的任何方法都将导致抛出 NullPointerException。

安全说明:如果应用程序需要读取密码或其他安全数据,则应使用 readPassword() 或 readPassword(java.lang.String,java.lang.Object…) 并在处理后手动将返回的字符数组归零 最小化内存中敏感数据的生命周期。

 Console cons;
 char[] passwd;
 if ((cons = System.console()) != null &&
     (passwd = cons.readPassword("[%s]", "Password:")) != null) {
     ...
     java.util.Arrays.fill(passwd, ' ');
 }

Since:

1.6

方法总结

修饰符和类型方法描述
voidflush()刷新控制台并强制立即写入任何缓冲的输出。
Consoleformat(String fmt, Object… args)使用指定的格式字符串和参数将格式化字符串写入此控制台的输出流。
Consoleprintf(String format, Object… args)使用指定的格式字符串和参数将格式化字符串写入此控制台的输出流的便捷方法。
Readerreader()检索与此控制台关联的唯一 Reader 对象。
StringreadLine()从控制台读取一行文本。
StringreadLine(String fmt, Object… args)提供格式化提示,然后从控制台读取一行文本。
char[]readPassword()从禁用回显的控制台读取密码或密码
char[]readPassword(String fmt, Object… args)提供格式化提示,然后从禁用回显的控制台读取密码或密码。
PrintWriterwriter()检索与此控制台关联的唯一 PrintWriter 对象。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

方法详情

writer

public PrintWriter writer()

检索与此控制台关联的唯一 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) 不会读取超出每次调用边界的字符,即使 目标缓冲区有空间容纳更多字符。 如果尚未在控制台的输入设备上输入或到达行边界,则 Reader 的读取方法可能会阻塞。 行边界被认为是换行符(’\n’)、回车符(’\r’)、紧跟换行符的回车符或流结束中的任何一种。

返回:

与此控制台关联的阅读器

format

public Console format(String fmt, Object… args)

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

参数:

参数名称参数描述
fmt格式字符串语法中描述的格式字符串
args格式字符串中的格式说明符引用的参数。 如果参数多于格式说明符,则忽略多余的参数。 参数的数量是可变的,可能为零。 参数的最大数量受《Java™ 虚拟机规范》中定义的 Java 数组的最大维度限制。 空参数的行为取决于转换。

返回:

这个控制台

Throws:

Throw名称Throw描述
IllegalFormatException如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。

printf

public Console printf(String format, Object… args)

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

调用 con.printf(format, args) 形式的此方法的行为与调用

con.format(format, args)

参数:

参数名称参数描述
format格式字符串语法中描述的格式字符串。
args格式字符串中的格式说明符引用的参数。 如果参数多于格式说明符,则忽略多余的参数。 参数的数量是可变的,可能为零。 参数的最大数量受《Java™ 虚拟机规范》中定义的 Java 数组的最大维度限制。 空参数的行为取决于转换。

返回:

这个控制台

Throws:

Throw名称Throw描述
IllegalFormatException如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。

readLine

public String readLine(String fmt, Object… args)

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

参数:

参数名称参数描述
fmt格式字符串语法中描述的格式字符串。
args格式字符串中的格式说明符引用的参数。 如果参数多于格式说明符,则忽略多余的参数。 参数的最大数量受《Java™ 虚拟机规范》中定义的 Java 数组的最大维度限制。

返回:

包含从控制台读取的行的字符串,不包括任何行终止字符,如果已到达流的结尾,则为 null。

Throws:

Throw名称Throw描述
IllegalFormatException如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。
IOError如果发生 I/O 错误。

readLine

public String readLine()

从控制台读取一行文本。

返回:

包含从控制台读取的行的字符串,不包括任何行终止字符,如果已到达流的结尾,则为 null。

Throws:

Throw名称Throw描述
IOError如果发生 I/O 错误。

readPassword

public char[] readPassword(String fmt, Object… args)

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

参数:

参数名称参数描述
fmt提示文本的格式字符串语法中所述的格式字符串。
args格式字符串中的格式说明符引用的参数。 如果参数多于格式说明符,则忽略多余的参数。 参数的最大数量受《Java™ 虚拟机规范》中定义的 Java 数组的最大维度限制。

返回:

包含从控制台读取的密码或密码短语的字符数组,不包括任何行终止字符,如果已到达流的结尾,则为 null。

Throws:

Throw名称Throw描述
IllegalFormatException如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。
IOError如果发生 I/O 错误。

readPassword

public char[] readPassword()

从禁用回显的控制台读取密码或密码

返回:

包含从控制台读取的密码或密码短语的字符数组,不包括任何行终止字符,如果已到达流的结尾,则为 null。

Throws:

Throw名称Throw描述
IOError如果发生 I/O 错误。

flush

public void flush()

刷新控制台并强制立即写入任何缓冲的输出。

指定者:

在接口 Flushable 中刷新

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/191574.html<

(0)
运维的头像运维
上一篇2025-04-01 04:49
下一篇 2025-04-01 04:50

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注