#java
#java
Вопрос:
Я пытаюсь записать отчет в текстовый файл. Когда я использую print
метод, все выглядит нормально, но в файле ничего не записано. Вот мой код.
public void writeFile(String filename,String report){
try{
FileWriter fw=null;
try{
fw = new FileWriter(filename);
fw.write("The game report n");
fw.write(report);
fw.write("Hope everyone has enjoyed it");
fw.flush();
}
catch(FileNotFoundException e){
System.out.println(filename "not found");
System.exit(0);
}
finally{
try{
fw.close();
}
catch( Exception exp){
System.out.println("Problem closing the filewriter");
}
}
}
catch(IOException e) {
e.printStackTrace();
System.exit(1);
}
}
А вот код из метода main.
public class MainDarts {
public static void main(String[] args) {
GameManager manager = new GameManager();
manager.readFile("Data.csv");
manager.Execute();
String report = manager.getOverallReport();
manager.writeFile("OutputData.txt", report);
}
}
Комментарии:
1. вы пробовали отладку?
2. Если ваш код не работает, это должно быть что-то связанное с GameManager. Другой код работает так, как вы ожидали.
3. Я пробовал отладку, но я мало что понимаю. буфер записи все время имеет нулевое значение
4. ~ Вау, я никогда не думал, что
FileWriter(String fileName)
документация настолько пуста. В нем не указано, что происходит, когда файл уже существует / не существует.
Ответ №1:
используйте класс PrintWriter следующим образом
PrintWriter writer = new PrintWriter("filename.txt", "UTF-8");
writer.println("Hello");
writer.flush();
writer.close();
Комментарии:
1. я отредактировал ответ, вы найдете выходной файл в главном каталоге вашего проекта, если вы используете IDE, такую как Netbeans или Eclipse
2. так что проверьте это хххххххххх: p
3. Не забудьте закрыть () в блоке finally или использовать try-with-resources
Ответ №2:
Или вы можете рассмотреть что-то более простое, например
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(filename))) {
writer.write(report);
}
или
Files.write(Paths.get(filename), report.getBytes());