Пытаюсь создать новый файл по примеру из книги, но он не создается. Подобных примеров с использованием конструктора
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 каким-либо функциям для дальнейшей работы. Но ещё раз повторю, что конструктор сам никаких новых файлов на диске не создаёт.
Комментариев нет:
Отправить комментарий