Console trong Java - Phương thức đọc input Console trong Java
25/08/2021 00:49
Có rất nhiều tình huống mà chúng ta cần phải lấy đầu vào từ người dùng dựa trên những yêu cầu của họ. Trong những trường hợp như vậy, chúng ta không thể lấy đầu vào từ trong chương trình, do vậy chúng ta cần phải lấy đầu vào từ console (bảng điều khiển) khi thực hiện chương trình. Java có nhiều cách khác nhau để lấu đầu vào và cung cấp đầu ra trong console. Trong bài viết này, chúng ta sẽ tìm hiểu cách lấy input từ người dùng sử dụng Console trong Java và học cách sử dụng console cho dữ liệu đầu ra và đầu vào trong Java cùng các ví dụ minh họa cụ thể.
Console trong Java là gì?
Thông thường, console được xem là một bảng điều khiển chuyên dụng để giúp người dùng quản lý hoặc sử dụng các thiết bị hoặc đồ dùng của mình,... Ví dụ khi chơi game, bạn sử dụng Game Console để điều khiển game, hay trong các buổi hòa nhạc, bộ phận console sẽ quản lý các thiết bị ánh sáng, âm thanh,... Trong lập trình, Console được xem là cách điều khiến ứng dụng đơn thuần nhất thông qua các dòng lệnh.
>>> Đọc thêm: Lớp POJO trong Java - Sự khác biệt giữa POJO và JavaBean
Phương thức lấy input console trong Java
Có ba cách để lấy input từ console trong Java
Sử dụng lớp BufferedReader
Sử dụng lớp BufferedReader là phương thức quen thuộc nhất để lấy input từ console. Java được giới thiệu kể từ Java 1. Lớp dữ liệu BufferedReader đọc dữ liệu theo từng dòng một qua phương thức readLine(). Lớp này sẽ bọc lấy System. in cùng InputStreamReader.
Để sử dụng những lớp này, chúng ta cần sử dụng gói java.io. Ví dụ dưới đây minh họa phương thức sử dụng java.io để đọc đầu vào từ console.
package com.techvidvan.consoleinput;
//Java program to demonstrate BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BufferedReaderDemo
{
public static void main(String[] args) throws IOException
{
InputStreamReader input = new InputStreamReader(System.in);
//Taking the input data using the BufferedReader class
BufferedReader reader = new BufferedReader(input);
// Reading data using readLine
System.out.println("Please enter the input:");
String name = reader.readLine();
// Printing the read line
System.out.println("You entered: ");
System.out.println(name);
}
}
Output
Please enter the input:
TechVidvan’s Java Tutorial
You entered:
TechVidvan’s Java Tutorial
Sử dụng lớp Scanner
Cách thứ hai để lấy input từ người dùng là sử dụng lớp java.util.Scanner. Đây có lẽ là lựa chọn tốt nhất để lấy console input từ người dùng. Lớp này đọc input từ người dùng trong console hoặc dòng lệnh. Công dụng khác của lớp Scanner là phân tích cú pháp các chuỗi và kiểu nguyên thủy với sự trợ giúp của các biểu thức chính quy trong Java - hay còn gọi là Regex trong Java.
Lớp Scanner có trong gói java.util. Lớp này nhận đầu vào từ System.in. Chúng ta cũng có thể sử dụng lớp Console này để đọc đầu vào giống như mật khẩu mà không thị các ký tự của mật khẩu đầu vào console.
Cú pháp sử dụng:
Scanner scanner = new Scanner(System.in);
Lợi ích của việc sử dụng lớp Scanner:
- Lớp Scanner cung cấp các phương thức hữu dụng như nextInt(), nextDouble(), nextFloat(), … để đọc các kiểu dữ liệu nguyên thủy.
- Lớp Scanner sử dụng biểu thức chính quy và chúng ta có thể sử dụng biểu thức chính quy để tìm tokens.
Nhược điểm của sử dụng lớp Scanner:
- Các phương thức Scanner dùng để đọc giá trị không đồng bộ
Các kiểu đầu vào của lớp Scanner:
Để đọc các giá trị của nhiều kiểu dữ liệu khác nhau, lớp Scanner cung cấp rất nhiều phương thức. Dưới đây là một số phương thức:
Phương thức |
Mô tả |
nextBoolean() |
Phương thức này đọc một giá trị boolean từ người người dùng |
nextByte() |
Phương thức này đọc giá trị byte từ người dùng |
nextDouble() |
Phương thức này độc giá trị Double từ người dùng |
nextFloat() |
Phương thức này đọc giá trị float từ người dùng |
nextInt() |
Phương thức này đọc giá trị int từ người dùng |
nextLine() |
Phương thức này đọc giá trị string từ người dùng |
nextLong() |
Phương thức này đọc giá trị long từ người dùng |
nextShort() |
Phương thức này đọc giá trị short từ người dùng |
>>> Đọc thêm: Static trong Java - Khám phá Biến, lớp và phương thức tĩnh trong Java
Sử dụng lớp Console trong Java
Lớp Console trong Java là kỹ thuật thứ ba để lấy đầu vào người dùng qua console. Lớp console được giới thiệu qua Java 1.5. Lớp này có trong gói java.io. Có rất nhiều phương thức trong lớp Console giúp đọc văn bản đầu vào và mật khẩu từ console mà không cần thể hiện chúng lên màn hình. Thứ hai, chúng ta có thể sử dụng lớp console này để đọc mật khẩu như đầu vào mà không thể hiện các ký tự đầu vào của mật khẩu trong console.
Ưu điểm:
- Đọc mật khẩu mà không hiển thị các ký tự của mật khẩu trên console
- Phương thức đọc của lớp console được đồng bộ hóa
- Chúng ta có thể sử dụng cú pháp string với lớp Console
Nhược điểm:
- Nó không hoạt động trong môi trường không tương tác, ví dụ như IDE
Phương thức của lớp Console trong Java :
Phương thức |
Mô tả |
Reader reader() |
Phương thức này lấy đối tượng của lớp Reader có liên quan tới console |
String readLine() |
Phương thức này đọc dòng đơn của văn bản từ console |
String readLine(String fmt, Object… args) |
Phương thức này cung cấp một lời nhắc đã được định dạng trước khi đọc văn bản đầu vào từ bảng điều khiển |
char[ ] readPassword() |
Sử dụng để đọc mật khẩu hiển thị trên màn hình điều khiển |
char[ ] readPassword(String fmt, Object… args) |
Cung cấp lời nhắc đã định dạng trước khi đọc mật khẩu không hiển thị trên màn hình điều khiển |
Console format(String fmt, Object… args) |
Hiển thị một chuỗi được định dạng cho luồng đầu ra của bảng điều khiển |
Console printf(String format, Object… args) |
In một chuỗi vào luồng đầu ra của bảng điều khiển |
PrintWriter writer() |
Sử dụng để lấy đối tượng của lớp PrintWriter |
void flush() |
Sử dụng để xả bảng điều khiển |
Kết luận: Trong bài viết Java này, chúng ta đã tìm hiểu ba cách khác nhau để lấy đầu vào từ người dùng, sau đó xử lý và hiển thị đầu ra mong muốn cho người dùng trên bảng điều khiển. Hy vọng bạn đã hiểu rõ hơn về Console trong Java và có thể làm việc cùng Java console trong các dự án sắp tới của mình. Tìm hiểu thêm về Java và các ngôn ngữ lập trình khác qua các khóa học lập trình tại Viện công nghệ thông tin T3H.