- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How many ways can we read data from the keyboard in Java?
The java.io package provides various classes to read write data from various sources and destinations.
You can read data from user (keyboard) using various classes such as, Scanner, BufferedReader, InputStreamReader, Console etc.
Using Scanner class
From Java 1.5 Scanner class was introduced. This class accepts a File, InputStream, Path and, String objects, reads all the primitive data types and Strings (from the given source) token by token using regular expressions. By default, whitespace is considered as the delimiter (to break the data into tokens).
To read data from keyboard you need to use standard input as source (System.in). For each datatype a nextXXX() is provided namely, nextInt(), nextShort(), nextFloat(), nextLong(), nextBigDecimal(), nextBigInteger(), nextLong(), nextShort(), nextDouble(), nextByte(), nextFloat(), next().
Example
Following Java program reads data from user using the Scanner class.
import java.util.Scanner; class Student{ String name; int age; float percent; boolean isLocal; char grade; Student(String name, int age, float percent, boolean isLocal, char grade){ this.name = name; this.age = age; this.percent = percent; this.isLocal = isLocal; this.grade = grade; } public void displayDetails(){ System.out.println("Details.............."); System.out.println("Name: "+this.name); System.out.println("Age: "+this.age); System.out.println("Percent: "+this.percent); if(this.isLocal) { System.out.println("Nationality: Indian"); }else { System.out.println("Nationality: Foreigner"); } System.out.println("Grade: "+this.grade); } } public class ReadData { public static void main(String args[]) { Scanner sc =new Scanner(System.in); System.out.println("Enter your name: "); String name = sc.next(); System.out.println("Enter your age: "); int age = sc.nextInt(); System.out.println("Enter your percent: "); float percent = sc.nextFloat(); System.out.println("Are you local (enter true or false): "); boolean isLocal = sc.nextBoolean(); System.out.println("Enter your grade(enter A, or, B or, C or, D): "); char grade = sc.next().toCharArray()[0]; Student std = new Student(name, age, percent, isLocal, grade); std.displayDetails(); } }
Output
Enter your name: Krishna Enter your age: 25 Enter your percent: 86 Are you local (enter true or false): true Enter your grade(enter A, or, B or, C or, D): A Details.............. Name: Krishna Age: 25 Percent: 86.0 Nationality: Indian Grade: A
Using BufferedReader
The BufferedReader class of Java is used to read stream of characters from the specified source (character-input stream). The constructor of this class accepts an InputStream object as a parameter, you can to pass an InputStreamReader.
Example
Following Java program reads data from user using the BufferedReader class.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Student{ String name; int age; float percent; boolean isLocal; char grade; Student(String name, int age, float percent, boolean isLocal, char grade){ this.name = name; this.age = age; this.percent = percent; this.isLocal = isLocal; this.grade = grade; } public void displayDetails(){ System.out.println("Details.............."); System.out.println("Name: "+this.name); System.out.println("Age: "+this.age); System.out.println("Percent: "+this.percent); if(this.isLocal) { System.out.println("Nationality: Indian"); }else { System.out.println("Nationality: Foreigner"); } System.out.println("Grade: "+this.grade); } } public class ReadData { public static void main(String args[]) throws IOException { BufferedReader reader =new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter your name: "); String name = reader.readLine(); System.out.println("Enter your age: "); int age = Integer.parseInt(reader.readLine()); System.out.println("Enter your percent: "); float percent = Float.parseFloat(reader.readLine()); System.out.println("Are you local (enter true or false): "); boolean isLocal = Boolean.parseBoolean(reader.readLine()); System.out.println("Enter your grade(enter A, or, B or, C or, D): "); char grade = (char) reader.read(); Student std = new Student(name, age, percent, isLocal, grade); std.displayDetails(); } }
Output
Enter your name: Krishna Enter your age: 25 Enter your percent: 86 Are you local (enter true or false): true Enter your grade(enter A, or, B or, C or, D): A Details.............. Name: Krishna Age: 25 Percent: 86.0 Nationality: Indian Grade: A
Using Console class
This class is used to write/read data from the console (keyboard/screen) devices. It provides a readLine() method which reads a line from the key-board. You can get an object of the Console class using the console() method.
Note − If you try to execute this program in a non-interactive environment like IDE it doesn’t work.
Example
Following Java program reads data from user using the Console class.
import java.io.BufferedReader; import java.io.Console; import java.io.IOException; import java.io.InputStreamReader; class Student{ String name; int age; float percent; boolean isLocal; char grade; Student(String name, int age, float percent, boolean isLocal, char grade){ this.name = name; this.age = age; this.percent = percent; this.isLocal = isLocal; this.grade = grade; } public void displayDetails(){ System.out.println("Details.............."); System.out.println("Name: "+this.name); System.out.println("Age: "+this.age); System.out.println("Percent: "+this.percent); if(this.isLocal) { System.out.println("Nationality: Indian"); }else { System.out.println("Nationality: Foreigner"); } System.out.println("Grade: "+this.grade); } } public class ReadData { public static void main(String args[]) throws IOException { Console console = System.console(); if (console == null) { System.out.println("Console is not supported"); System.exit(1); } System.out.println("Enter your name: "); String name = console.readLine(); System.out.println("Enter your age: "); int age = Integer.parseInt(console.readLine()); System.out.println("Enter your percent: "); float percent = Float.parseFloat(console.readLine()); System.out.println("Are you local (enter true or false): "); boolean isLocal = Boolean.parseBoolean(console.readLine()); System.out.println("Enter your grade(enter A, or, B or, C or, D): "); char grade = console.readLine().toCharArray()[0]; Student std = new Student(name, age, percent, isLocal, grade); std.displayDetails(); } }
Output
Enter your name: Krishna Enter your age: 26 Enter your percent: 86 Are you local (enter true or false): true Enter your grade(enter A, or, B or, C or, D): A Details.............. Name: Krishna Age: 26 Percent: 86.0 Nationality: Indian Grade: A
- Related Articles
- In how many ways we can concatenate Strings in Java?
- How can we read from standard input in Java?
- How can we read data from an excel sheet in Selenium Webdriver?
- In how many ways can we split a string in JavaScript?
- In how many ways we can convert a String to a character array using Java?
- Ways to read input from console in Java
- Can we read from JOptionPane by requesting input from user in Java?
- Program to find how many ways we can climb stairs in Python
- How can we read a JSON file in Java?
- How to read the data from a file in Java?
- How many ways a String object can be created in java?
- Reading data from keyboard using console class in Java
- What are JSP declarations? In how many ways we can write JSP declarations?
- How many ways can get the instance of a Class class in Java?
- How to read data from .csv file in Java?
