Trong Java, có 3 cách để nhập dữ liệu từ bàn phím (đọc dữ liệu từ console):
- Dùng BufferedReader + InputStreamReader (Những phiên bản Java cũ)
- Dùng Scanner (JDK 1.5)
- System.console (JDK 1.6)
1. Nhập dữ liệu sử dụng BufferedReader + InputStreamReader
Đây là cách truyền thống được dùng từ thời JDK 1.4 trở về trước
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | package com.ngockhuong; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ReadConsole { public static void main(String[] args) { BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(System.in)); while (true) { System.out.print("Nhập nội dung: "); String input = br.readLine(); if ("q".equals(input)) { System.out.println("Thoát!"); System.exit(0); } System.out.println("Đã nhâp : " + input); System.out.println("-----------\n"); } } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } } } |
Kết quả
1 2 3 4 5 6 | Nhập nội dung: lâm ngọc khương Đã nhâp : lâm ngọc khương ----------- Nhập nội dung: q Thoát! |
2. Nhập dữ liệu sử dụng Scanner
Trong JDK 1.5, bạn có thể dùng java.util.Scanner
để nhập dữ liệu vào từ bàn phím. Scanner hỗ trợ các phương thức hay dùng như:
- nextInt(), nextLong() : nhập vào một số nguyên.
- nextFloat(), nextDouble() : nhập vào số thực.
- nextBoolean() : nhập vào true hoặc false.
- next() : nhập vào một chuỗi các ký tự không chứa khoảng trắng.
- nextLine() : nhập vào một chuỗi các ký tự (được phép có khoảng trắng).
- …
Tuy nhiên, việc dùng các phương thức nhập số rất dễ gặp tình trạng trôi lệnh. Trôi lệnh và cách khắc phục như thế nào? Bạn có thể xem ở đây: Xử lý trôi lệnh khi dùng Scanner trong Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | package com.ngockhuong; import java.util.Scanner; public class ReadConsole { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (true) { System.out.print("Nội dung: "); String input = scanner.nextLine(); if ("q".equals(input)) { System.out.println("Thoát!"); break; } System.out.println("Đã nhập: " + input); System.out.println("-----------\n"); } scanner.close(); } } |
Kết quả
1 2 3 4 5 6 7 8 9 10 | Nội dung: ngockhuong dot com Đã nhập: ngockhuong dot com ----------- Nội dung: nhập dữ liệu sử dụng Scanner Đã nhập: nhập dữ liệu sử dụng Scanner ----------- Nội dung: q Thoát! |
3. Nhập dữ liệu sử dụng System.console
Trong JDK 1.6, bạn có thể sử dụng một cách đơn giản mà mạnh mẽ hơn. Đó là class java.io.Console
.
Class Console cung cấp các phương thức để nhập vào chuỗi và cả password (readPassword()
method). Nếu bạn develop một chương trình tương tác chủ yếu với console trên Linux, Windows thì java.io.Console là lựa chọn tốt nhất
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package com.ngockhuong; public class ReadConsole { public static void main(String[] args) { while (true) { System.out.print("Vui lòng nhập: "); // phương thức console() trả về đối tượng thuộc lớp Console String input = System.console().readLine(); if ("q".equals(input)) { System.out.println("Thoát!"); System.exit(0); } System.out.println("Nội dung đã nhập: " + input); System.out.println("-----------\n"); } } } |
Kết quả

Chạy thử chương trình nhập dữ liệu từ Console sử dụng System.console()
Bình luận
Hãy là người đầu tiên bình luận bạn nhé :)