Я работаю над проектом Java, в котором мне нужно записать в файл большое количество строк. Я знаю, что BufferedWriter может повысить производительность по сравнению с посимвольной записью, но я не уверен в том, как лучше очистить буфер и обеспечить правильную запись всех данных.
Вот мой текущий код:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriteExample {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
for (int i = 0; i < 100000; i++) {
writer.write("Line " + i + "\n");
}
// Do I need to call writer.flush() here explicitly?
} catch (IOException e) {
e.printStackTrace();
}
}
}
Вопросы:
Нужно ли явно вызывать write.flush() перед закрытием BufferedWriter?
Существует ли разница в производительности между периодическим вызовомlush() внутри цикла и использованием try-with-resources?
Каковы рекомендации по эффективному написанию больших файлов на Java?
Я работаю над проектом Java, в котором мне нужно записать в файл большое количество строк. Я знаю, что BufferedWriter может повысить производительность по сравнению с посимвольной записью, но я не уверен в том, как лучше [b]очистить буфер[/b] и [b]обеспечить правильную запись всех данных[/b]. Вот мой текущий код: [code]import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException;
public class FileWriteExample { public static void main(String[] args) { try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) { for (int i = 0; i < 100000; i++) { writer.write("Line " + i + "\n"); } // Do I need to call writer.flush() here explicitly? } catch (IOException e) { e.printStackTrace(); } } } [/code] [b]Вопросы:[/b] [list] [*]Нужно ли явно вызывать write.flush() перед закрытием BufferedWriter?
[*]Существует ли разница в производительности между периодическим вызовомlush() внутри цикла и использованием try-with-resources?
[*]Каковы рекомендации по эффективному написанию больших файлов на Java?