BufferedWriter 寫入不完整問題
在提供的Java 程式中,程式碼遇到BufferedWriter out 未能完全寫入所有預期內容的問題文字到輸出檔nyccrash.sql。這會導致 SQL 語句不完整,且輸出中缺少資料。
寫入不完整的原因是由於 BufferedWriter 的預設緩衝區大小設定為 8192 個字元。這意味著,在緩衝區達到其容量之前,對 BufferedWriter 的寫入操作不會立即刷新到底層檔案。
在給定場景中,程式處理超過 10,000 行輸入數據,產生大量數據超過緩衝區大小的 SQL 字串。因此,緩衝區已滿並保存了數百行未寫入的資料。
要解決此問題,至關重要的是在寫入操作完成後透過呼叫 BufferedWriter 上的 close() 方法來手動刷新緩衝區。此操作可確保緩衝區中的所有剩餘資料在關閉之前寫入文件,從而解決寫入不完整的問題。
下面更正的程式碼包括 close() 呼叫:
... while ((line = in.readLine()) != null) { String[] esa = line.split(","); sqlstr = "insert into nyccrash values (" + esa[0] + ", " + esa[1] + ", " + esa[2] + ", " + esa[3] + ", " + esa[4] + ", " + esa[5] + ", " + esa[6] + ");\n"; out.write(sqlstr); } out.close(); } ...
以上是為什麼我的 Java BufferedWriter 導致檔案寫入不完整?的詳細內容。更多資訊請關注PHP中文網其他相關文章!