Membaca dan Menulis Input Pengguna di Java

1. Pengenalan

Dalam tutorial ringkas ini, kami akan menunjukkan beberapa cara untuk menggunakan konsol untuk input dan output pengguna di Java .

Kami akan melihat beberapa kaedah kelas Pengimbas untuk mengendalikan input, dan kemudian kami akan menunjukkan beberapa output sederhana menggunakan System.out .

Akhirnya, kita akan melihat cara menggunakan kelas Konsol , yang tersedia sejak Java 6, untuk input dan output konsol.

2. Membaca dari System.in

Untuk contoh pertama kami, kami akan menggunakan kelas Scanner dalam pakej java.util untuk mendapatkan input dari System.in - aliran input "standard":

Scanner scanner = new Scanner(System.in);

Mari gunakan kaedah nextLine () untuk membaca keseluruhan baris input sebagai String dan maju ke baris seterusnya:

String nameSurname = scanner.nextLine();

Kami juga boleh menggunakan kaedah seterusnya () untuk mendapatkan token input seterusnya dari aliran:

String gender = scanner.next();

Sekiranya kita mengharapkan input berangka, kita dapat menggunakan nextInt () untuk mendapatkan input seterusnya sebagai int primitif, dan, sama, kita dapat menggunakan nextDouble () untuk mendapatkan pemboleh ubah jenis ganda :

int age = scanner.nextInt(); double height = scanner.nextDouble();

The Scanner kelas juga menawarkan hasNext_Prefix () kaedah yang mengembalikan benar jika token seterusnya boleh ditafsirkan sebagai jenis data yang sama .

Sebagai contoh, kita boleh menggunakan hasNextInt ()kaedah untuk memeriksa sama ada token seterusnya dapat ditafsirkan sebagai bilangan bulat:

while (scanner.hasNextInt()) { int nmbr = scanner.nextInt(); //... }

Juga, kita dapat menggunakan kaedah hasNext (Corak pola) untuk memeriksa apakah token input berikut sesuai dengan corak :

if (scanner.hasNext(Pattern.compile("www.baeldung.com"))) { //... }

Selain menggunakan Scanner kelas, kami juga boleh menggunakan Input StreamReader dengan System.in untuk mendapatkan input dari konsol :

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

Dan kemudian kita dapat membaca input dan menguraikannya menjadi bilangan bulat:

int i = Integer.parseInt(buffReader.readLine()); 

3. Menulis ke System.out

Untuk output konsol, kita dapat menggunakan System.out - contoh kelas PrintStream , yang merupakan jenis OutputStream .

Dalam contoh kami, kami akan menggunakan output konsol untuk memberikan permintaan input pengguna dan memaparkan mesej terakhir kepada pengguna.

Mari gunakan kaedah println () untuk mencetak String dan menamatkan baris :

System.out.println("Please enter your name and surname: ");

Sebagai alternatif, kita dapat menggunakan kaedah cetak () , yang berfungsi sama dengan println () , tetapi tanpa menghentikan baris :

System.out.print("Have a good"); System.out.print(" one!");

4. Menggunakan Kelas Konsol untuk Input dan Output

Di JDK 6 dan yang lebih baru, kita boleh menggunakan kelas Konsol dari pakej java.io untuk membaca dan menulis ke konsol.

Untuk mendapatkan objek Konsol , kami akan memanggil System.console () :

Console console = System.console();

Seterusnya, mari kita menggunakan readLine () kaedah yang Console kelas untuk menulis baris ke konsol dan kemudian membaca garis dari konsol :

String progLanguauge = console.readLine("Enter your favourite programming language: "); 

Sekiranya kita perlu membaca maklumat sensitif, seperti kata laluan, kita boleh menggunakan kaedah readPassword () untuk meminta pengguna mendapatkan kata laluan dan membaca kata laluan dari konsol dengan echoing dilumpuhkan :

char[] pass = console.readPassword("To finish, enter password: "); 

Kita juga boleh menggunakan Console kelas untuk output tulis ke konsol, sebagai contoh, menggunakan printf () kaedah dengan String hujah:

console.printf(progLanguauge + " is very interesting!"); 

5. Kesimpulan

Dalam artikel ini, kami menunjukkan cara menggunakan beberapa kelas Java untuk melakukan input dan output pengguna konsol.

Seperti biasa, contoh kod dari tutorial ini disediakan di GitHub.