Soal Jawab Java dibawakan oleh editor php Banana, hari ini kita akan membincangkan cara melaksanakan lelaran dalam NetBeans dan mencetak baris seterusnya dalam fail Text.txt ke konsol output. Soalan ini melibatkan kemahiran membaca dan lelaran fail, yang boleh dicapai dengan mudah melalui pelaksanaan kod yang munasabah. Mari kita lihat penyelesaian khusus!
Saya cuba membaca ulasan teks saya daripada fail teks, tetapi ia nampaknya tidak boleh beralih ke baris kod seterusnya kerana nosuchelementexception. Bagaimanakah saya boleh menyelesaikan masalah ini?
Saya memohon maaf terlebih dahulu atas kekurangan etika menulis kerana saya baru di laman web ini. Namun begitu, inilah kod saya:
public class Praktikum11_4 { private Scanner input; public void membukaFile() { try { input = new Scanner(new File("favouriteplace.txt")); } catch(FileNotFoundException e) { System.err.print("File yang anda cari" + "Tidak ditemukkan"); System.exit(1); } catch(IllegalStateException e) { System.err.print("Error membaca File"); } } public void membacaData() { try{ while(input.hasNext()) { for (int i = 1 ; i <= 7 ; i++ ) { // Scan the line String location = input.nextLine(); double rating = input.nextDouble(); System.out.printf(i+". " + "%s dengan rating %f\n", location, rating); } } }catch (NoSuchElementException e) { System.err.println("Element not found ERROR 101 "); } } public void menutupFile() { if (input != null) { input.close(); System.out.print("File berhasil untuk ditutup"); } } public static void main(String[] args) { } }
Ini ialah fail yang saya cuba ulangi dan cetak ke konsol output:
Fail terdiri daripada data](https://i.stack.imgur.com/dj2kc.png)
Ini adalah output yang saya dapat:
Element not found error 101 file berhasil untuk ditutup
Jadi ini adalah hasil jangkaan saya:
Expected output](https://i.stack.imgur.com/ntkv4.png)
Nosuchelementexception berlaku kerana anda memanggil input.nextdouble() dalam gelung for tanpa menyemak sama ada fail input adalah There is nilai berganda yang tersedia seterusnya. Anda harus menyemak sama ada nilai berganda seterusnya wujud sebelum cuba membacanya. Juga, sama ada pengecualian berlaku atau tidak, pengecualian harus dikendalikan dengan betul dan fail ditutup.
public void readData() { try { int i = 1; while (input.hasNext()) { String location = input.nextLine(); if (input.hasNextDouble()) { double rating = input.nextDouble(); input.nextLine(); // Consume the newline character after the double System.out.printf("%d. %s with rating %.2f\n", i, location, rating); i++; } else { System.err.println("Invalid rating format for location: " + location); input.nextLine(); // Consume the entire line to move to the next line } } } catch (NoSuchElementException e) { System.err.println("Element not found ERROR 101"); } }
Pastikan untuk memanggil openfile() untuk membuka fail sebelum memanggil readdata() dan memanggil closefile() untuk menutup fail apabila anda selesai. Juga, jangan lupa untuk menambah kaedah utama untuk melaksanakan program.
Atas ialah kandungan terperinci Bagaimana untuk mengulang dan mencetak baris seterusnya dalam Text.txt ke konsol output dalam NetBeans?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!