Video: Java prog#134. How to read an entire text file and display in a JTextField and JTextArea 2024
Banyak program Java membaca karakter dari keyboard komputer. Program ini menggunakan hal-hal seperti Scanner, System. in, dan nextDouble - hal-hal yang didefinisikan di API Java. Program DoPayroll dalam daftar ini menempatkan sebuah spin baru pada cerita ini. Alih-alih membaca karakter dari keyboard, program tersebut membaca karakter dari EmployeeInfo. file txt File hidup di hard drive komputer Anda.
impor java util. Pemindai; impor java io. Mengajukan; impor java io. IOException; kelas publik DoPayroll {public static void main (String args []) melempar IOException {Scanner diskScanner = new Scanner (File baru ("EmployeeInfo. txt")); untuk (int empNum = 1; empNum <= 3; empNum ++) {payOneEmployee (diskScanner);} diskScanner. close ();} static void payOneEmployee (Scanner aScanner) {Karyawan anEmployee = karyawan baru (); seorang pegawai. setName (aScanner nextLine ()); seorang pegawai. setJobTitle (aScanner nextLine ()); seorang pegawai. cutCheck (aScanner. nextDouble ()); aScanner nextLine ();}}
Untuk membaca karakter dari sebuah file, Anda menggunakan beberapa hal yang sama yang membantu Anda membaca karakter dari keyboard. Anda menggunakan Scanner, nextDouble, dan barang lainnya. Tapi selain barang ini, ada beberapa rintangan tambahan untuk dilompati. Berikut daftar:
-
Anda memerlukan objek baru File . Agar lebih tepat, Anda memerlukan instance baru dari kelas File API. Anda mendapatkan contoh baru ini dengan kode seperti
new File ("EmployeeInfo. Txt")
Benda dalam tanda petik adalah nama file - file di hard drive komputer Anda. File berisi karakter.
Pada titik ini, terminologi membuat gunung keluar dari gundukan tanah. Tentu, ungkapan File baru objek dan contoh File baru muncul , tapi yang Anda lakukan hanyalah membuat File baru ("EmployeeInfo. Txt") berdiri untuk sebuah file pada hard drive anda Setelah Anda memasukkan File baru ("EmployeeInfo. Txt") ke Scanner baru,
Scanner diskScanner = new Scanner (File baru ("EmployeeInfo. Txt"));
Anda bisa melupakan semua tentang bisnis File baru. Sejak saat itu dalam kode, diskScanner adalah singkatan dari EmployeeInfo. txt filename pada hard drive komputer Anda. (Nama diskScanner adalah singkatan dari file di hard drive Anda seperti pada contoh sebelumnya, nama keyboard adalah singkatan dari tombol yang Anda tekan hari demi hari.)
Membuat objek File baru dalam daftar seperti membuat objek Karyawan baru nanti dalam daftar yang sama. Satu-satunya perbedaan adalah bahwa kelas Employee and Account didefinisikan dalam contoh buku ini.Kelas File didefinisikan di API Java.
Bila Anda terhubung ke file disk dengan Scanner baru, jangan lupa bagian File yang baru. Jika Anda menulis Scanner baru ("EmployeeInfo. Txt") tanpa File baru, compiler tidak akan keberatan. (Anda tidak akan mendapatkan peringatan atau pesan kesalahan sebelum menjalankan kode.) Tetapi ketika Anda menjalankan kode, Anda tidak akan mendapatkan hasil seperti yang Anda harapkan.
-
Anda harus merujuk ke kelas File dengan nama lengkap - java. io. File . Anda dapat melakukan ini dengan deklarasi impor seperti yang tercantum dalam daftar. Atau, Anda bisa mengacaukan kode Anda dengan pernyataan seperti
Scanner diskScanner = new Scanner (new java. Io. File ("EmployeeInfo. Txt"));
-
Anda memerlukan melempar IOException klausa. Banyak hal bisa salah saat program Anda terhubung ke EmployeeInfo. txt. Untuk satu hal, harddisk Anda mungkin tidak memiliki file bernama EmployeeInfo. txt.
-
Untuk yang lain, file EmployeeInfo. txt mungkin berada di direktori yang salah Untuk mengatasi bencana semacam ini, bahasa pemrograman Java mengambil tindakan pencegahan tertentu. Bahasa berkeras bahwa ketika file disk dilibatkan, Anda mengetahui kemungkinan bahaya untuk memanggil pemindai baru.
Anda dapat mengetahui bahaya dengan beberapa cara yang mungkin, namun cara termudah adalah menggunakan klausa lempar. Dalam daftar, header metode utama diakhiri dengan kata-kata melempar IOException. Dengan menambahkan dua kata ini, Anda akan membutuhkan compiler Java.
Sepertinya Anda mengatakan "Saya tahu bahwa memanggil Scanner baru dapat menyebabkan masalah. Anda tidak perlu mengingatkan saya. "Dan, tentu saja, menambahkan melempar IOException ke metode utama Anda membuat compiler tidak mengeluh. (Tanpa klausa melempar ini, Anda mendapatkan pesan kesalahan pengecualian yang tidak dilaporkan.)