У меня есть задание скопировать текст одного файла в другой. С помощью следующего кода я могу вывести строки файла на консоль, но печать в выходной файл не работает.
try {
System.out.print("Enter the file name with extension : ");
Scanner input = new Scanner(System.in);
File inputFile = new File(input.nextLine());
PrintWriter out = new PrintWriter("/Users/jonathanzier/Dropbox/IdeaProjects/CSE_205_Homework1/src/com/company/output.txt");
input = new Scanner(inputFile);
while (input.hasNextLine()) {
out.println(input.nextLine());
//System.out.println(input.nextLine()); - This will print
//correctly to the console
}
out.close();
} catch (FileNotFoundException e) {
System.out.println("File Not Found");
}
Попробуйте добавить out.flush (); после out.println (input.nextLine ());
@ iamsankalp89 это ваша система. если файл не найден, он должен его увидеть.
@pavithraCS - Да, это сработало, почему? Спасибо
Я поменял путь дорогой
@ iamsankalp89 Я не получал ошибку "файл не найден".
Нет проблем, я еще раз проверю
для получения дополнительной информации см. этот stackoverflow.com/questions/29991851/…
Теперь, когда я добавил out.flush () в цикл, он работает правильно. Спасибо!
@pavithraCS out.close() будет сброшен, но почему он не работает, если вы явно не упоминаете об этом?
Рассмотрите возможность использования предложения try-with-resource или закрытия PrintWriter в предложении finally. В соответствии с текущим форматированием вашего оператора try-catch, если вы столкнетесь с исключением FileNotFoundException, предложение будет прервано и никогда не закроет PrintWriter.




Писатель печати использует Буферизованный писатель. Он не будет записывать на диск сразу. Когда вы вызываете методы println, printf или format, они будут записывать на диск, если включена автоматическая очистка. В противном случае вам придется вызвать метод flush для записи на диск. Обычно вызов метода close должен записывать все, что находится в буфере, в файл без необходимости использования метода flush.
https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html
Отображается ошибка "Файл не найден"