Console in Java
Console in Java is a class in java.io package that provides access to the system console associated with JVM.
Console class was introduced in Java 1.6 version. It is mainly used for reading data from the console and writing data on the console. All read and write operations are synchronized. Here, console refers to the character input device (keyboard) and character display device (screen display).
This console class provides the various methods to access character-based console device connected with JVM (Java Virtual Machine). It allows you to read input from the user, write formatted output to the console, and handle password input securely through the console.
Java Console Class Declaration
Console is a final class that extends Object class and implements Flushable interface. The general syntax to declare console class in Java programming is as follows:
public final class Console
extends Object
implements Flushable
The inheritance diagram for this console class is as follows:
java.lang.Object
java.io.Console
Constructor of Console Class
Console class does not provide any constructor in Java. We can create an object reference to the console using System.console() method if JVM is connected to the console.
The syntax to get object reference of console class is as follows:
Console c = System.console(); // Here, System is a class that provides a static method console().
If JVM is not connected with any console, this method will return null.
Methods of Console Class in Java
In addition to methods inherited from Object class, Java console class also provides some useful methods that are as follows:
1. void flush(): This method flushes the console and forces all buffered output to be written immediately.
2. Console format(String fmtString, Object… args): This method writes a formatted string to this console’s output stream according to the specified format string fmtString and arguments args.
3. Console printf(String format, Object… args): This method writes a formatted string to this console’s output stream using the specified format string and arguments.
4. Reader reader(): It is used to retrieve the Reader object reference associated with this console. That is, this method returns a reference to a Reader connected to the console.
5. String readLine(): The readLine() method is used to read a single line of text from the console. It reads and returns a string entered from the keyboard or user.
Input ends when the user presses ENTER. Null is returned if the end of the console input stream has been reached. On failure, an IOError is thrown.
6. String readLine(String fmtString, Object… args): This method displays a prompting string formatted using specified fmtString and args, and then reads a single line of text from the console.
Input ends when the user presses ENTER. Null is returned if the end of the console input stream has been reached. On failure, an IOError is thrown.
7. char[ ] readPassword(): This method reads a password from the console with echoing.
8. char[ ] readPassword(String fmtString, Object… args): This overloaded method displays a prompting string formatted as specified by fmtString and args, and then reads a password from the console with echoing disabled.
9. PrintWriter writer(): The writer() method is used to retrieve the PrintWriter object reference associated with this console. That is, it returns an object reference to a Writer connected to the console.
Console Example Program
Let’s take a simple example program where we will take input from the keyboard or user and display it on the console.
Example 1:
import java.io.Console;
public class ConsoleExample {
public static void main(String[] args)
{
// Create a reference to the console.
Console c = System.console();
// Checking the console is available or not.
if(c != null) {
System.out.printf("Console is available.");
} else{
System.out.printf("Console is not available.");
return; // A console is not available.
}
// Read a string and display it on the console.
System.out.println("Enter your name: ");
String name = c.readLine(); // Reads a line of text from the console.
System.out.println("Welcome to " +name);
}
}
Output: Enter your name: John Welcome to John
In this program, we have used printf() method provided by Java console class. The printf() method displays formatted string on the console. We can also use printf() method of PrintStream class to write the formatted data.
Note: If you execute this program using Eclipse IDE, the console may not be available. Try to execute this program from the command prompt.
Let’s take another example program where we will read the password using readPassword() method of the console class. If we read the password using Console class, it will not be visible to the user. Look at the program code to understand better.
Example 2:
import java.io.Console;
public class ConsoleExample {
public static void main(String[] args)
{
// Create a reference to the console.
Console c = System.console();
// Checking the console is available or not.
if(c != null) {
System.out.printf("Console is available.");
} else {
System.out.printf("Console is not available.%n");
return;
}
System.out.println("Enter your password: ");
char[ ] ch = c.readPassword(); // Reading password.
String pass = String.valueOf(ch);// Converting an array of char into string
System.out.println("Password is: "+pass);
}
}
Output: Enter your password: Password is: 1234657
As you can observe in the output, it is not visible when we have entered the password because the program receives it in a character array.
In this tutorial, you have learned about console class in Java that is a part of the java.io package and used for handling input and output through the console. You can obtain a Console object using System.console(). If the application is not started from a console, this method returns null.
I hope that you will have understood all the methods provided by console class and practiced all example programs. Stay tuned with the next tutorial where we will discuss serialization and deserialization in Java with the help of examples. Please, email us if you find anything incorrect in this tutorial.
Thanks for reading!!!