2015-01-05 3 views
-3

Я создаю файл, подобный этому (я отправляю arg [0] в качестве имени файла, который нужно создать). Файл не создан Я искал источник проекта и ничего не нашел, почему?Файл не создается

import java.io.File; 
public class Test { 
    public static void main (String [] args) 
    { 
     File f=new File(args[0]); 
    } 
} 
+0

Пожалуйста, потратьте немного усилий, чтобы написать вопрос аккуратно и предоставить адекватную информацию. – StackFlowed

+0

Кроме того, javadocs - отличный ресурс для изучения того, что делают классы. http://docs.oracle.com/javase/7/docs/api/java/io/File.html Все 'java.io.File' делает, это« абстрактное представление файла », это означает, что файл не является созданный до тех пор, пока вы не вызовете метод 'createNewFile()' – xbakesx

ответ

3

Попробуйте с

File f=new File(args[0]); 
    f.createNewFile(); 
+0

Пока я понимаю, что ваш ответ создает файл, он не отвечает на вопрос OP о «почему». –

+1

Предупреждение ... Проверьте код возврата этого метода ... – fge

2

Файл просто представление пути. Вам нужно фактически открыть выходной поток с этим файлом и записать на него файл для создания.

2

Это нормально.

A File является аннотация объекта. Он может или не может ссылаться на существующий ресурс в файловой системе.

Но поскольку это 2015, падение File, используйте java.nio.file вместо:

final Path path = Paths.get(args[0]); 
Files.createFile(path); 

Но на самом деле, you shouldn't use File in 2015. Шутки в сторону. Да, .createNewFile() существует на File, но ... Ну, прочитайте страницу. Короче: возвращает логическое значение, нужно проверить возвращаемое значение, если false, SOL, вы даже не можете диагностировать.


Edit: страница, чтобы узнать, как использовать java.nio.file: here

(бесстыдная самореклама для обеих ссылок, извините за это)

1

new File(...) Исполнительное не создают файл в файловой системе. Объект File - это просто способ представления пути к объекту файловой системы, который может или не может существовать.

Типичным способом создания файла является открытие файла FileOutputStream или FileWriter. Файл создается, даже если вы ничего не пишете. Другие альтернативы - позвонить по телефону File.createNewFile() или File.createTempFile(...).

0

Просто создать объект файла не создает физический файл на disk.Actual файл создается с f.createNewFile(), как описано в ниже демо

Когда йо сделать File file=new File(args[0]); файл только представляет собой объект Java не объект файла в файловой системе

Вот демо для основного файла создавать и удалять операции

public class FileDemo { 
    public static void main(String[] args) { 

     File f = null; 

     try{ 
     // create new file 
     f = new File("test.txt"); 

     // tries to create new file in the system 
      f.createNewFile(); 

     // deletes file from the system 
     f.delete(); 

     }catch(Exception e){ 
     e.printStackTrace(); 
     } 
    } 
} 
+1

Я не понимаю здесь отрицательных голосов. Пожалуйста, дайте по крайней мере комментарии, чтобы кто-то из них мог улучшить в будущем. Отрицательное голосование более чем приветствуется, но без какой-либо цели оно не служит никакой цели. –

+1

@Tom Спасибо, я исправил это. –

Смежные вопросы