Cara Membaca File Text di JAVA Memanipulasi file teks adalah keterampilan yang akan melayani Anda dengan baik dalam karir pemrograman Anda. Pada bagian ini, Anda akan belajar bagaimana untuk membuka dan bagaimana menulis ke file teks. Tapi dengan file teks, kita hanya berarti sebuah file dengan teks di dalamnya - sederhana seperti itu! Anda dapat membuat file teks dalam program-program seperti Notepad pada komputer Windows, TextEdit pada Mac, Gedit di lingkungan Linux / Gnome. Hal pertama yang akan kita lakukan adalah untuk membuka file teks dan membaca isinya.
Membaca file teks Memulai sebuah proyek baru untuk ini. Hubungi paket file text dan kelas FileData . Tambahkan pernyataan impor hanya di bawah garis paket dan sebelum nama kelas: java.io.IOException impor; Jendela coding Anda kemudian akan terlihat seperti ini:
Untuk menghadapi sesuatu yang tidak beres dengan penanganan berkas kita, tambahkan berikut ini ke metode utama (teks dicetak tebal): public static void main (String [] args) throws IOException { } Kami memberitahu Java bahwa metode utama akan melemparkan sebuah IOException kesalahan, dan itu harus ditangani. Kemudian, kita akan
menambahkan try ... catch blok untuk menampilkan pesan kesalahan yang sesuai bagi pengguna, harus sesuatu yang salah. Untuk membuka file teks, mari kita membuat kelas baru. Jadi klik File> New file dari menu NetBeans di atas. Buat file Java Class baru dan beri nama ReadFile . Ketika kelas baru Anda dibuat, tambahkan berikut tiga pernyataan impor: java.io.IOException impor, java.io.FileReader impor, import java.io.BufferedReader; Kelas baru Anda kemudian akan terlihat seperti ini:
(Garis impor digarisbawahi karena kita tidak melakukan apa-apa dengan mereka. Ini adalah fitur NetBeans.) Kita akan membuat objek baru dari kelas ini untuk membaca file. Tambahkan konstruktor berikut ke kode Anda, bersama dengan bidang private String disebut path :
Semua yang kita lakukan di sini adalah lewat di nama file, dan kemudian menyerahkan nama file ke bidang jalan. Apa yang sekarang kita perlu lakukan adalah membuat sebuah metode yang mengembalikan semua baris kode dari file teks. Garis akan diadakan di sebuah array. Tambahkan metode berikut deklarasi yang akan membuka file:
Jangan khawatir tentang merah menggarisbawahi: ia akan pergi setelah kami telah menambahkan beberapa kode. NetBeans baru saja ditambahkan karena kita tidak memiliki pernyataan return. Perhatikan bahwa metode ini dibentuk untuk mengembalikan sebuah array String, meskipun: public String [] Array akan berisi semua baris dari file teks. Perhatikan juga, bahwa kami telah menambahkan "throws IOException" ke akhir header metode.Setiap metode yang berhubungan dengan file teks membaca kebutuhan salah satunya. Java akan melemparkan kesalahan atas baris, dan mereka akan ditangkap dalam metode utama kami. Untuk membaca karakter dari file teks, FileReader digunakan. Ini membaca byte dari sebuah file teks, dan setiap byte adalah karakter tunggal. Anda dapat membaca seluruh baris teks, bukan karakter tunggal. Untuk melakukan ini, Anda dapat menyerahkan FileReader Anda ke sesuatu yang disebut BufferedReader . BufferedReader memiliki metode yang berguna yang disebut ReadLine.Seperti namanya, digunakan untuk membaca seluruh baris, bukan karakter tunggal. Apa BufferedReader tidak, meskipun, adalah untuk menyimpan karakter dalam memori (buffer) sehingga mereka dapat dimanipulasi lebih mudah. Tambahkan baris berikut yang mendirikan FileReader dan BufferedReader a:
Kami sedang menciptakan dua objek baru di sini: satu adalah objek FileReader yang kita sudah menelepon fr , yang lain adalah objek BufferedReader dengan nama TextReader . FileReader membutuhkan nama file untuk membuka. Bagi kami, path file dan nama digelar di lapangan variabel yang disebut jalan. Jadi kita dapat menggunakan ini. BufferedReader tersebut diserahkan obyek FileReader antara kurung bulat. Semua karakter dari file tersebut kemudian diadakan di memori menunggu untuk dimanipulasi. Mereka diselenggarakan di bawah nama variabel TextReader . Sebelum kita dapat membaca baris teks, kita perlu menyiapkan array. Setiap posisi dalam array kemudian dapat memegang salah satu baris lengkap teks. Jadi tambahkan dua baris berikut ke kode Anda: int numberOfLines = 3; String [] = new String textData [numberOfLines]; Untuk saat ini, kami akan mengatur jumlah baris dalam file teks untuk hanya 3. Jelas, file teks dapat menampung sejumlah baris, dan kita biasanya tidak tahu berapa banyak. Jadi kita akan mengubah ini segera. Kami akan menulis metode terpisah yang mendapat jumlah baris dalam file teks. Baris kedua kode baru, meskipun, set up array String. Jumlah posisi dalam array (ukurannya) diatur ke jumlah baris. Kami telah menempatkan ini antara tanda kurung siku. Untuk menempatkan semua baris teks dari file ke dalam setiap posisi dalam array, kita perlu loop.Loop akan mendapatkan setiap baris teks dan menempatkan setiap baris dalam array. Tambahkan baris berikut ke kode Anda: int i; untuk (i = 0; i
Untuk loop pergi dari 0 sampai hanya kurang dari jumlah baris. (Posisi Array, ingat, mulai dari 0. The 3 baris akan disimpan pada posisi 0, 1, dan 2.) Garis yang mengakses baris teks dan menyimpannya dalam array adalah yang satu ini: textData [ i ] = textReader.readLine (); Setelah tanda sama kita punya ini: textReader.readLine (); The TextReader objek kami mendirikan memegang semua karakter dari file teks dalam memori (buffer). Kita dapat menggunakan metode readLine untuk membaca baris lengkap dari buffer.Setelah garis dibaca, kami menyimpan garis dalam posisi array: textData [ i ] Variabel disebut saya akan kenaikan setiap kali putaran loop, sehingga akan melalui seluruh array menyimpan baris teks. Hanya dua baris kode untuk menambah metode, sekarang. Jadi tambah baris ini ke kode Anda: textReader.close (); kembali textData; Metode flushes dekat buffer memori sementara disebut TextReader. Garis kembali mengembalikan seluruh array. Perhatikan bahwa tidak ada tanda kurung siku dibutuhkan untuk nama array. Bila Anda telah menambahkan kode, semua orang jelek menggarisbawahi harus menghilang.Metode Anda kemudian akan terlihat seperti ini:
Masih ada masalah jumlah baris, namun. Kami telah keras-kode ini untuk 3. Apa yang kita butuhkan adalah untuk pergi melalui file teks dan menghitung berapa banyak baris yang dimilikinya. Jadi menambahkan metode berikut ke kelas ReadFile Anda:
Metode baru ini disebut readlines , dan ditetapkan untuk mengembalikan nilai integer. Ini adalah jumlah baris file teks memiliki. Perhatikan metode ini juga memiliki IOException sebagian header metode. Kode untuk metode set up FileReader lain, dan BufferedReader lain. Untuk lingkaran sepanjang baris teks, kita memiliki: sementara (( ALINE = bf.readLine ()) = null ) { numberOfLines + +; }
Loop sementara tampak agak berantakan. Tapi itu hanya mengatakan "membaca setiap baris teks dan berhenti ketika nilai null tercapai." (Jika tidak ada baris lagi dalam sebuah file teks, JAVA mengembalikan nilai null.) Di dalam kurung keriting, kita kenaikan counter disebut numberOfLines. Final dua baris kode flush buffer memori disebut bf, dan mengembalikan jumlah baris. Untuk memanggil metode baru ini ke dalam tindakan, mengubah baris ini dalam metode OpenFile Anda: int numberOfLines = 3; Mengubahnya ini: int numberOfLines = readlines (); Jadi, bukannya keras-coding jumlah baris, kita dapat memanggil metode baru kami dan mendapatkan jumlah baris dalam file teks. OK, waktu untuk menempatkan kelas baru untuk bekerja dan melihat apakah itu akan membuka file teks. Kembali ke FileData kelas, salah satunya dengan metode utama di dalamnya. Mengatur variabel string untuk menyimpan nama file teks:
Pada tahap ini, Anda perlu membuat sebuah file teks di suatu tempat di komputer Anda. Kami menciptakan satu ini sederhana di Notepad pada mesin Windows:
Nama dari file teks adalah "test.txt". Buat file teks yang mirip pada komputer Anda sendiri. Perhatikan di mana Anda menyimpannya untuk karena Anda membutuhkan file path juga: String nama_file = "C :/ test.txt"; Jadi kami test.txt file yang disimpan pada drive C. Jika kita telah menciptakan sebuah folder bernama MyFiles untuk terus file maka jalan akan menjadi "C :/ MyFiles / test.txt". Ubah Anda mengajukan jalan, jika perlu. Hal berikutnya yang harus dilakukan adalah membuat objek baru dari kami ReadFile kelas. Kita kemudian dapat memanggil metode yang membuka file tersebut. Tetapi kita dapat melakukan hal ini dalam mencoba ... menangkap blok. Tambahkan kode berikut, tepat di bawah garis variabel String Anda:
Jangan lupa semua kurung keriting untuk mencoba ... catch blok. Anda perlu satu pasang untuk bagian mencoba dan pasangan lain untuk bagian tangkapan. Untuk bagian mencoba, kita memiliki:
ReadFile file = baru ReadFile (nama_file); String [] = aryLines file.OpenFile (); Baris pertama membuat sebuah objek ReadFile baru yang disebut berkas . Di antara kurung putaran ReadFile, kami menambahkan nama_file variabel. Ini cukup untuk menyerahkan konstruktor path file yang dibutuhkan. Baris kedua kode set up array String disebut aryLines . Setelah tanda sama, kami telah disebutOpenFile metode kelas ReadFile kami. Jika berhasil membuka file teks, maka array baris teks akan diserahkan kepada aryLines array baru. Jika sesuatu berjalan salah, namun, kesalahan dilemparkan atas baris, dan berakhir di tangkapan bagian dari try ... catch blok: catch ( IOException e ) { System.out.println (e.getMessage ()); } Setelah kata "menangkap" kami memiliki sepasang kurung bulat. Di dalam kurung bulat, kita memiliki: IOException e Apa yang dilakukan adalah untuk membuat sebuah variabel yang disebut e yang merupakan tipeIOException . Obyek IOException memiliki metode tersendiri yang dapat Anda gunakan. Salah satu metode ini adalah getMessage. Akan memberikan pengguna beberapa informasi tentang apa yang salah. Sebelum kita melihat contoh pesan kesalahan, mari kita loop melalui semua baris dari file teks, mencetak masing-masing. Tambahkan kode lingkaran berikut untuk mencoba bagian dari try ... catch blok: int i; untuk (i = 0; i <aryLines.length, i + +) { System.out.println (aryLines [i]); } Jendela coding Anda sekarang harus terlihat seperti ini:
Ketika program dijalankan, jendela Output akan mencetak berikut:
Seperti yang Anda lihat, setiap baris dari file teks kita telah dicetak. Untuk menguji pengecekan error bagian dari kode, mengubah nama file teks Anda ke salah satu Anda tahu belum dibuat. Kemudian jalankan kode Anda lagi. Pada jendela Output di bawah ini, Anda dapat melihat bahwa file teks kita diubah menjadi ujianB , dan bahwa hal itu tidak dapat ditemukan:
Jika Anda suka, Anda dapat menambahkan pesan kesalahan Anda sendiri untuk blok catch:
Ini mungkin lebih baik untuk meninggalkan ke JAVA, meskipun! Pada bagian berikutnya, Anda akan belajar bagaimana menulis ke file teks dengan menggunakan kode Java.