2015-01-10 20 views

Antwort

20

nicht sicher, was Sie wollen, aber zum Beispiel:

try { 
    Files.createFile(thePath); 
} catch (FileAlreadyExistsException ignored) { 
} 

Und es gibt andere Lösungen; zum Beispiel:

if (!Files.exists(thePath, LinkOption.NOFOLLOW_LINKS)) 
    Files.createFile(thePath); 

Beachten Sie, dass im Gegensatz zu File, diese Ausnahmen, wenn die Dateierstellung nicht werfen! Und relevante (z. B. AccessDeniedException, ReadOnlyFileSystemException usw. usw.)

Weitere Informationen finden Sie unter here. Siehe auch why you should migrate to java.nio.file, quickly.

+0

Also gibt es keinen einzigen Zeilencode, um das zu tun? – emotionull

+2

Nein, aber ist es wirklich wichtig? ;) Du kannst einfach deine eigene Hilfsmethode erstellen, wenn du willst, das ist nicht wirklich ein Problem – fge

+2

try {Files.createFile (thePath); } catch (FileAlreadyExistsException ignoriert) {} – mac01021

1

Sie können

File f = new File("pathToYourFile"); 
if(!f.exists() && !f.isDirectory()) 
{ 
    f.createNewFile() 
} 

tun Wenn Sie NIO.2 verwenden möchten Sie Methoden Dateien Klasse verwenden können.

boolean exists(Path path,LinkOption. . . options) 
Path createTempFile(Path dir, String prefix,String suffix, FileAttribute<?>. . . attrs) 
createFile(Path path, FileAttribute<?>... attrs) 

Wie fge in den Kommentaren createNewFile() Methoden erwähnt gibt boolean Wert angibt, ob die Datei tatsächlich erstellt wurde oder nicht. Leider gibt es keine Möglichkeit zu wissen, warum es gescheitert ist. Dies ist einer der Gründe, warum NIO.2-I/O-APIs eingeführt wurden.

+1

Und ... Sie überprüfen nicht das Ergebnis von '.createNewFile()'! – fge