Вы не должны использовать относительные пути в java.io.File
материалах. Они будут относительно текущего рабочего каталога, который, в свою очередь, зависит от того, как вы запустили Java-приложение. Это может не быть каталогом проекта, как вы ожидаете. Вы всегда должны использовать абсолютные пути в java.io.File
. Например. c:/path/to/outfile.txt
.
Чтобы узнать, где он в данный момент на самом деле был записан, выполните:
File file = new File("outfile.txt");
System.out.println(file.getAbsolutePath());
Еще раз, никогда не используйте относительные пути. Всегда используйте абсолютные пути. Еще просто поместите его в путь к классам и используйте ClassLoader#getResource()
, а затем URL#toURI()
и затем new File(uri)
.
И действительно, закройте потоки. Это неявно сбрасывает буфер данных в ресурс.