Запись файла с помощью BufferedWriter в Java [дубликат]
На этот вопрос уже есть ответ здесь:
Я делаю лабораторию, где мы должны прочитать внешний файл, взять некоторую статистику по данным, а затем создать и записать новый файл со статистикой. Все в моей программе работает, кроме записи файла, которую я не могу сделать. поймите, почему мой метод не работает.BufferedWriter writer;
public void writeStats(int word, int numSent, int shortest, int longest, int average)
{
try
{
File file = new File("jefferson_stats.txt");
file.createNewFile();
writer = new BufferedWriter(new FileWriter(file));
writer.write("Number of words: " + word );
writer.newLine();
writer.write("Number of sentences: " + numSent );
writer.newLine();
writer.write("Shortest sentence: " + shortest + " words");
writer.newLine();
writer.write("Longest sentence: " + longest + " words");
writer.newLine();
writer.write("Average sentence: " + average + " words");
}
catch(FileNotFoundException e)
{
System.out.println("File Not Found");
System.exit( 1 );
}
catch(IOException e)
{
System.out.println("something messed up");
System.exit( 1 );
}
}
3 ответа:
Вы всегда должны закрывать открытые ресурсы явно или неявно с Java 7 try-with-resources
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) { ... }
Кроме того, есть более удобный класс для записи текста-java. io. PrintWriter
try (PrintWriter pw = new PrintWriter(file)) { pw.println("Number of words: " + word); ... }
Вы должны закрыть ваш BufferedWriter с помощью закрыть():
writer.close();