
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
Java - Console readLine(String fmt, Object... args) method
Description
The Java Console readLine(String fmt, Object... args) method provides a formatted prompt, then reads a single line of text from the console.
Key Points
The readLine(String fmt, Object... args) method allows formatted prompts, making input collection more user-friendly.
It supports dynamic insertion of values into prompts using format specifiers like %s (string) and %d (integer).
Works only in console environments (not in most IDEs).
Declaration
Following is the declaration for java.io.Console.readLine(String fmt, Object... args) method −
public String readLine(String fmt, Object... args)
Parameters
fmt
args
Return Value
This method returns the string containing the line read from the console, not including any line-termination characters or null if an end of the stream has been reached.
Exception
IllegalFormatException − If a format string contains an illegal syntax, a format specifier that is incompatible with the given arguments, insufficient arguments given the format string, or other illegal conditions.
IOError − If an I/O error occurs.
Important Note
System.console() may return null in IDEs like Eclipse, NetBeans or IntelliJ. Run these programs from the command line (terminal) for proper execution.
Example - Usage of Console readLine(String fmt, Object... args) method
The following example shows the usage of Java Console readLine(String fmt, Object... args) method.
ConsoleDemo.java
package com.tutorialspoint; import java.io.Console; public class ConsoleDemo { public static void main(String[] args) { Console console = null; String username = "User"; String alpha = null; try { // creates a console object console = System.console(); // if console is not null if (console != null) { // read line from the user input alpha = console.readLine("%s! Enter Alphabets:", username); // prints System.out.println("Alphabets entered: " + alpha); } } catch(Exception ex) { // if any error occurs ex.printStackTrace(); } } }
Console Interaction
Let us compile and run the above program, this will produce the following result −
User! Enter Alphabets:abc Alphabets entered: abc
Example - Formatting a Prompt with User Input
The following example shows the usage of Java Console readLine(String fmt, Object... args) method.
ConsoleDemo.java
package com.tutorialspoint; import java.io.Console; public class ConsoleDemo { public static void main(String[] args) { Console console = System.console(); if (console == null) { System.out.println("No console available"); return; } // Using readLine(String fmt, Object... args) to format the prompt String city = console.readLine("What is your favorite city? "); // Display the result console.printf("Wow! %s is a great place to visit.\n", city); } }
Console Interaction
Let us compile and run the above program, this will produce the following result −
What is your favorite city? Hyderabad Wow! Hyderabad is a great place to visit.
Explanation
System.console() is used to get the Console instance.
We check if the console is available (this method doesn't work in most IDEs).
We use readLine(String fmt, Object... args) to print a formatted prompt and read user input.
The %s in printf() is replaced by the user's input to personalize the response.
Example - Asking Multiple Questions with Formatting
The following example shows the usage of Java Console readLine(String fmt, Object... args) method.
ConsoleDemo.java
package com.tutorialspoint; import java.io.Console; public class ConsoleDemo { public static void main(String[] args) { Console console = System.console(); if (console == null) { System.out.println("No console available"); return; } // Using readLine with formatted prompts String firstName = console.readLine("Enter your first name: "); String lastName = console.readLine("Enter your last name: "); int age = Integer.parseInt(console.readLine("Enter your age, %s %s: ", firstName, lastName)); // Display user details console.printf("Hello, %s %s! You are %d years old.\n", firstName, lastName, age); } }
Console Interaction
Let us compile and run the above program, this will produce the following result −
Enter your first name: Sunil Enter your last name: Agarwal Enter your age, Sunil Agarwal: 45 Hello, Sunil Agarwal! You are 45 years old.
Explanation
We first obtain the Console instance and check if it's available.
The readLine(String fmt, Object... args) method is used to format prompts dynamically, inserting the user's first and last name into the age question.
The age input is read and converted from String to int.
The user's full details are printed using printf().