Home > Java > javaTutorial > Why Isn't My BufferedWriter Flushing All Data to the Output File?

Why Isn't My BufferedWriter Flushing All Data to the Output File?

Patricia Arquette
Release: 2024-12-18 00:46:10
Original
150 people have browsed it

Why Isn't My BufferedWriter Flushing All Data to the Output File?

BufferedWriter Not Flushing Data to Output File

Problem:

A Java program attempt to convert CSV data into SQL commands is experiencing issues with its output file. Not all the data written to BufferedWriter appears in the output file.

Details:

The program reads a CSV file with over 10,000 lines and generates SQL statements to insert the data into a table. However, the output file is truncated midway, with the last incomplete statement missing part of a value.

Code:

// ...
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);
}
// ...
Copy after login

Solution:

The issue arises because the output buffer is not flushed during the writing process. The default buffer size for BufferedWriter is 8192 characters, sufficient to hold multiple lines. After the buffer is full, data is not written to the file until the buffer is flushed manually.

To ensure all data is written to the output file, it is necessary to explicitly close the OutputStream, which flushes any remaining data in the buffer:

out.close();
Copy after login

Closing the output stream guarantees that all data, including the partial statement, is flushed to the file before the program exits.

The above is the detailed content of Why Isn't My BufferedWriter Flushing All Data to the Output File?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template