Java Java类
Java.io.Console 类提供了访问与当前Java虚拟机关联的基于字符的控制台设备(如果有)的方法。 Console 类是由 JDK 6 添加到Java.io 中的。
要点:
- 它用于读取和写入控制台(如果存在)。
- Console 主要是一个便利类,因为它的大部分功能都可以通过 System.in 和 System.out 获得。但是,它的使用可以简化某些类型的控制台交互,尤其是在从控制台读取字符串时。
- 控制台不提供构造函数。相反,控制台对象是通过调用 System.console() 获得的,如下所示:
static Console console( )
如果控制台可用,则返回对它的引用。否则,返回 null。控制台并非在所有情况下都可用。因此,如果返回 null,则无法进行控制台 I/O。
- 它提供了读取文本和密码的方法。如果您使用 Console 类读取密码,它将不会显示给用户Java .io.Console 类在内部附加了系统控制台。
重要方法:
- writer :检索与此控制台关联的唯一 PrintWriter 对象。
句法:
public PrintWriter writer() Returns: The printwriter associated with this console
- reader :检索与此控制台关联的唯一 Reader 对象。
句法:
public Reader reader() Returns: The reader associated with this console
- format :使用指定的格式字符串和参数将格式化字符串写入此控制台的输出流。
句法:
public Console format(String fmt, Object... args) Parameters: fmt - A format string as described in Format string syntax args - Arguments referenced by the format specifiers in the format string. If there are more arguments than format specifiers, the extra arguments are ignored. Returns:This console Throws: IllegalFormatException
- printf :使用指定的格式字符串和参数将格式化字符串写入此控制台的输出流的便捷方法。
句法:public Console printf(String format, Object... args) Parameters: format - A format string as described in Format string syntax. args - Arguments referenced by the format specifiers in the format string. If there are more arguments than format specifiers, the extra arguments are ignored. Returns:This console Throws:IllegalFormatException
- readLine :提供格式化提示,然后从控制台读取一行文本。
句法:public String readLine(String fmt,Object... args) Parameters: fmt - A format string as described in Format string syntax. args - Arguments referenced by the format specifiers in the format string. If there are more arguments than format specifiers, the extra arguments are ignored. Returns: A string containing the line read from the console, not including any line-termination characters, or null if an end of stream has been reached. Throws: IllegalFormatException IOError - If an I/O error occurs.
- readLine :从控制台读取单行文本。
句法:public String readLine() Returns: A string containing the line read from the console, not including any line-termination characters, or null if an end of stream has been reached. Throws: IOError
- readPassword:提供格式化提示,然后从禁用回显的控制台读取密码或密码。
句法:public char[] readPassword(String fmt,Object... args) Parameters: fmt - A format string as described in Format string syntax for the prompt text. args - Arguments referenced by the format specifiers in the format string. Returns: A character array containing the password or passphrase read from the console, not including any line-termination characters, or null if an end of stream has been reached. Throws: IllegalFormatException IOError
- readPassword :从禁用回显的控制台读取密码或密码
句法:public char[] readPassword() Returns: A character array containing the password or passphrase read from the console, not including any line-termination characters, or null if an end of stream has been reached. Throws:IOError
- flush:刷新控制台并强制立即写入任何缓冲的输出。
句法:public void flush() Specified by: flush in interface Flushable
程序:
// Java Program to demonstrate Console Methods
import java.io.*;
class ConsoleDemo
{
public static void main(String args[])
{
String str;
//Obtaining a reference to the console.
Console con = System.console();
// Checking If there is no console available, then exit.
if(con == null)
{
System.out.print("No console available");
return;
}
// Read a string and then display it.
str = con.readLine("Enter your name: ");
con.printf("Here is your name: %s\n", str);
//to read password and then display it
System.out.println("Enter the password: ");
char[] ch=con.readPassword();
//converting char array into string
String pass = String.valueOf(ch);
System.out.println("Password is: " + pass);
}
}
输出:
Enter your name: Nishant Sharma
Here is your name: Nishant Sharma
Enter the password:
Password is: dada
注意: System.console() 在在线 IDE 中返回 null