Страницы

Поиск по вопросам

суббота, 6 октября 2018 г.

Конструктор класса File не создает файл на диске

Пытаюсь создать новый файл по примеру из книги, но он не создается. Подобных примеров с использованием конструктора
File f = new File("E://test.txt"); в интернете много, но почему-то у меня на JDK 8 оно не работает.
public class Main { public static void main(String[] args) throws IOException{ File f = new File ("E://Workspace//create4.txt");
System.out.println("File name : "+ f.getName()); System.out.println("Parent: " + f.getParent()); System.out.println(f.exists() ? "exists" : "does not exist"); } }
В итоге, вот, что получается:
File name : create4.txt Parent: E:\Workspace does not exist
Файла - нет. Знаю, что если набрать в try f.createNewFile(); то все будет ок, но раз приводят примеры без него, то значит должно работать.


Ответ

Конструктор класса java.io.File создаёт объект, представляющий файл на диске. Но конструктор не создаёт этот файл, а предоставляет некоторый интерфейс, который затем позволяет что-либо сделать. Например, проверить существует ли файл. Проще говоря, объект класса File после создания представляет собой только имя файла, независимо от его физического существования на диске.
Как верно замечено в вопросе, чтобы создать файл нужно вызвать метод createNewFile. Или же передавать объект типа File каким-либо функциям для дальнейшей работы. Но ещё раз повторю, что конструктор сам никаких новых файлов на диске не создаёт.

Комментариев нет:

Отправить комментарий