Was ist die Java 7 oder Java 8 Möglichkeit, eine Datei zu erstellen, wenn das nicht existiert?Clean Java 7 Möglichkeit, Datei zu erstellen, wenn nicht existiert
Antwort
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.
Also gibt es keinen einzigen Zeilencode, um das zu tun? – emotionull
Nein, aber ist es wirklich wichtig? ;) Du kannst einfach deine eigene Hilfsmethode erstellen, wenn du willst, das ist nicht wirklich ein Problem – fge
try {Files.createFile (thePath); } catch (FileAlreadyExistsException ignoriert) {} – mac01021
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.
Und ... Sie überprüfen nicht das Ergebnis von '.createNewFile()'! – fge
AFAIK Java 8 ändert nicht die Art, wie wir mit Dateien arbeiten. – alfasin
@alfasin Java 7 (und damit auch Java 8) hat es immens verändert mit java.nio.file; und heute leider ist es immer noch zu wenig genutzt – fge
@fge Ganz richtig. Ich werde es entfernen. – Biffen