BufferedWriter Tidak Mengeluarkan Data Sepenuhnya
Di Java, kelas BufferedWriter biasanya digunakan untuk menulis teks ke cakera. Walaupun ia menggunakan teknik penimbalan untuk meningkatkan prestasi, terdapat keadaan di mana ia mungkin gagal untuk menulis semua data yang dimaksudkan pada fail output.
Satu kejadian sedemikian berlaku apabila penimbal BufferedWriter melebihi saiz lalainya. Secara lalai, saiz penimbal ditetapkan kepada 8192 aksara, yang boleh memuatkan ratusan baris data dengan mudah. Walau bagaimanapun, jika jumlah data melebihi kapasiti penimbal, data tidak akan ditulis pada fail sehingga penimbal telah dibuang secara eksplisit.
Penerangan Isu
The atur cara yang diterangkan dalam soalan membaca data daripada fail CSV dan menukarnya kepada arahan SQL untuk dimasukkan ke dalam jadual. Program ini nampaknya berfungsi dengan betul sehingga tiba-tiba berhenti menulis pada fail output separuh proses penukaran.
Penyelesaian
Untuk membetulkan isu ini, adalah penting untuk menutup OutputStream yang dikaitkan dengan BufferedWriter. Tindakan ini memaksa pembilasan data yang tinggal, memastikan ia ditulis pada fail output. Baris kod berikut perlu ditambah sebelum atur cara ditamatkan:
out.close();
Dengan menutup OutputStream, data penimbal akan ditulis dengan serta-merta pada fail, menyelesaikan isu output terpotong.
Atas ialah kandungan terperinci Mengapa Java BufferedWriter Saya Tidak Menulis Semua Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!