Đoạn trích bài giảng với người cố vấn trong khóa học của Đại học Codegym. Đăng ký cho khóa học đầy đủ.


"Anh bạn, thời gian của bạn đã đến. Bây giờ tôi sẽ nói với bạn về cách nhập liệu bằng bàn phím."

"Chúng tôi đã sử dụng System.out để hiển thị dữ liệu trên màn hình. Để nhận đầu vào, chúng tôi sẽ sử dụng System.in ."

"Nghe có vẻ dễ dàng."

"Nhưng System.in có một thiếu sót – nó chỉ cho phép chúng tôi đọc mã ký tự từ bàn phím. Để giải quyết vấn đề này và đọc tất cả các khối dữ liệu lớn cùng một lúc, chúng tôi sẽ sử dụng một cấu trúc phức tạp hơn:"

Ví dụ 1
Nhập một chuỗi và số từ bàn phím
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //Read a string from the keyboard
String sAge = bufferedReader.readLine(); //Read a string from the keyboard
int nAge = Integer.parseInt(sAge); //Convert the string to a number.
1
Nhiệm vụ
Java Syntax,  mức độbài học
Đã khóa
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
Ví dụ 2
Một phiên bản nhỏ gọn hơn của ví dụ trước:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
Ví dụ 3
Thậm chí nhỏ gọn hơn
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

"Có câu hỏi nào không?"

"Uh...tôi chẳng hiểu gì cả."

"Để đọc một chuỗi từ bàn phím, cách thuận tiện nhất là sử dụng đối tượng BufferedReader . Nhưng để làm được điều đó, bạn phải chuyển vào đối tượng mà bạn sẽ đọc dữ liệu từ đó. Trong trường hợp này, System.in ."

"Nhưng System.inBufferedReader không tương thích, vì vậy chúng tôi sử dụng một bộ điều hợp khác – một đối tượng InputStreamReader khác ."

"Tôi nghĩ tôi hiểu rồi. Lớp Máy quét này là gì ?"

"Scanner có thể tiện lợi, nhưng nó không hữu ích lắm. Vấn đề là, khi bạn tiếp tục (cả trong học tập và làm việc), bạn sẽ thường xuyên sử dụng BufferedReader và InputStreamReader , nhưng Scanner – rất hiếm khi. Nó thuận tiện trong ví dụ của chúng tôi, nhưng trong trong tương lai nó sẽ không còn hữu ích thường xuyên nữa. Vì vậy, chúng tôi sẽ không sử dụng nó nhiều ."

"Điều đó có vẻ rõ ràng, nhưng tôi không chắc mình đã hiểu mọi thứ."