Hướng dẫn cách đọc dữ liệu từ console trong Java

Chào các bạn, trong bài viết này, chúng ta sẽ cùng tìm hiểu về cách đọc dữ liệu từ console trong Java

Trong Java, có 3 cách để đọc dữ liệu từ console :
  1. System.console (JDK 1.6)
  2. Scanner (JDK 1.5)
  3. BufferedReader + InputStreamReader (Tiêu chuẩn)

1. System.console
Kể từ JDK 1.6, các developer bắt đầu chuyển sang sử dung java.io.Console đơn giản và mạnh mẽ hơn.

JavaConsole.java
Java:
package com.mkyong.io;

import java.io.Console;

public class JavaConsole {

    public static void main(String[] args) {

        Console console = System.console();

        String input = "";
        while (!"q".equalsIgnoreCase(input)) {

            System.out.print("Enter something (q to quite): ");

            input = console.readLine();
            System.out.println("input : " + input);
        }

        System.out.println("bye bye!");
    }

}
System.console() sẽ trả về null khi sử dụng IDE, hãy chạy class này bằng console hoặc terminal một cách thủ công.

Code:
~/projects/target/classes$ java com.mkyong.io.JavaConsole

Enter something (q to quite): hello 123
input : hello 123
Enter something (q to quite): hello Java
input : hello Java
Enter something (q to quite): mkyong
input : mkyong
Enter something (q to quite): q
input : q
bye bye!

P.S Nhiều hơn tại Java System.console().


2. Scanner
Trước JDK 1.6, đây là cách sử dụng Scanner để đọc dữ liệu từ console.

JavaScanner.java
Java:
package com.mkyong.io;

import java.util.Scanner;

public class JavaScanner {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String input = "";
        while (!"q".equalsIgnoreCase(input)) {

            System.out.print("Enter something (q to quite): ");

            input = scanner.nextLine();
            System.out.println("input : " + input);
        }

        System.out.println("bye bye!");
    }

}
Code:
Enter something (q to quite): hello mkyong
input : hello mkyong
Enter something (q to quite): jdk 1.5
input : jdk 1.5
Enter something (q to quite): exit
input : exit
Enter something (q to quite): q
input : q
bye bye!
P.S Nhiểu hơn tại Java Scanner.


3. BufferedReader + InputStreamReader
Trước đây, thời JDK 1.1, sử dụng BufferedReader + InputStreamReader để đọc dữ liệu từ console

JavaBufferedReaderClassic.java
Java:
package com.mkyong.io;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JavaBufferedReaderClassic {

    public static void main(String[] args) {

        BufferedReader br = null;

        try {

            br = new BufferedReader(new InputStreamReader(System.in));

            String input = "";
            while (!"q".equalsIgnoreCase(input)) {

                System.out.print("Enter something (q to quite): ");

                input = br.readLine();
                System.out.println("input : " + input);
            }

            System.out.println("bye bye!");

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

}
JDK 1.7 try-with-resources

JavaBufferedReader.java
Java:
package com.mkyong.io;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JavaBufferedReader {

    public static void main(String[] args) {

        // jdk 1.7
        try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {

            String input = "";
            while (!"q".equalsIgnoreCase(input)) {

                System.out.print("Enter something (q to quite): ");

                input = br.readLine();
                System.out.println("input : " + input);
            }

            System.out.println("bye bye!");

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}


Cám ơn các bạn đã theo dõi. Hẹn gặp lại các bạn trong các bài viết sau :)

Bài viết tham khảo tại: https://mkyong.com/java/how-to-read-input-from-console-java/
 
Sửa lần cuối:

Bình luận