Có những cách đọc Input nào từ màn hình Console trong Java?
0
1
trungkfc02 • 570
đã đăng:
Có 3 cách để đọc giá trị Input từ màn hình Console trong Java, bao gồm:
- Sử dụng lớp BufferedReader
- Sử dụng lớp Scanner
- Sử dụng lớp Console (Lưu ý là lớp Console chỉ hoạt động trực tiếp trên màn hình Console thật sự ví dụ như khi bạn chạy chương trình Java bằng Command Line chẳng hạn, không hoạt động gián tiếp trên các IDE như NetBeans IDE, Eclipse, ...v.v.)
BufferedReader
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class ConsoleInput {
public static void main(String[] args) {
try {
// Tạo mới một đối tượng BufferReader
BufferedReader reader = new BufferedReader(new InputStreamReader( System.in ));
// Đọc dữ liệu từ Console sử dụng phương thức readLine(),
// ngoài ra cũng có thể sử dụng phương thức read()
System.out.println("Enter something: ");
String var = reader.readLine();
// Xuất dữ liệu ra màn hình
System.out.println("You typed: " + var);
}
catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Lớp BufferedReader yêu cầu bạn phải thêm try...catch
hoặc throws
để xử lý khi có trường hợp lỗi đọc dữ liệu xảy ra. Dữ liệu được đọc bởi lớp BufferedReader được lưu dưới dạng mặc định là String
, nếu bạn muốn chuyển qua các kiểu dữ liệu khác, có thể sử dụng các phương thức parse
tương ứng như Integer.parseInt()
, ..
Scanner
import java.util.Scanner;
public class ConsoleInput {
public static void main(String[] args) {
// Tạo mới một đối tượng Scanner
Scanner reader = new Scanner( System.in );
// Đọc dữ liệu từ Console sử dụng phương thức nextLine(),
// ngoài ra bạn cũng có thể sử dụng các phương thức
// + nextInt() -> Nhận dữ liệu là kiểu số nguyên
// + nextFloat() -> Nhận dữ liệu là kiểu số thực
// + nextBoolean() -> Nhận dữ liệu là kiểu bool
// + ............
System.out.println("Enter String: ");
String varOne = reader.nextLine();
//System.out.println("Enter Integer: ");
//Integer varTwo = reader.nextInt();
// Xuất dữ liệu ra màn hình
System.out.println("You typed: " + varOne);
// Xuất kiểu dữ liệu ra màn hình
System.out.println("Data type: " + varOne.getClass().getName());
}
}
Khác với BufferedReader, lớp Scanner cung cấp trực tiếp các phương thức đọc dữ liệu như nextFloat(), nextShort(), ... để đọc từng loại dữ liệu bạn muốn, không cần phải chuyển đổi kiểu dữ liệu một cách trung gian nữa.
Console
import java.io.Console;
public class ConsoleInput {
public static void main(String[] args) {
// Tạo một đối tượng Console
Console reader = System.console();
// Bởi vì lớp Console không hoạt động trên IDE,
// nó yêu cầu bạn phải sử dụng giao diện Console.
if (reader == null) {
System.out.println("Are you using the IDE? Try Console Interface instead");
System.exit(0);
}
// Đọc dữ liệu từ Console sử dụng phương thức readLine(),
// hoặc phương thức readPassword()
System.out.println("Enter String: ");
String var = reader.readLine();
// Xuất dữ liệu ra màn hình
System.out.println("You typed: " + var);
// Xuất kiểu dữ liệu ra màn hình
System.out.println("Data type: " + var.getClass().getName());
}
}
thêm bình luận...
0
toanthang • 20
đã đăng:
Java hỗ trợ lớp java.util.Scanner cho phép đọc giá trị input từ màn hình Console.
Scanner s = new Scanner( System.in );
System.out.println("Nhap vao ten: ");
String ten = s.nextLine();
System.out.println("Nhap vao tuoi: ");
Integer tuoi = s.nextInt();
System.out.println("Ten: " + ten);
System.out.println("Tuoi: " + tuoi);
thêm bình luận...
Bạn chưa đăng nhập, vui lòng đăng nhập để thêm câu trả lời.
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)