× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

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.

Console trong Java

>>> Đọ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.