2
Có những cách đọc Input nào từ màn hình Console trong Java?
0
thientri3330 đã đăng:

thêm bình luận...
1
trungkfc02570 đã đă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());
    }
}
đã bổ sung 5.6 năm trước bởi
Avatar: trungkfc02 trungkfc02570
thêm bình luận...
0
toanthang20 đã đă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);
đã bổ sung 5.6 năm trước bởi
Avatar: toanthang toanthang20
thêm bình luận...
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)