Qual è il modo Java 7 o Java 8 per creare un file se questo non esiste?Pulire Java 7 modo per creare il file se non esiste
risposta
Non sei sicuro di quello che si vuole, ma per esempio:
try {
Files.createFile(thePath);
} catch (FileAlreadyExistsException ignored) {
}
E ci sono altre soluzioni; per esempio:
if (!Files.exists(thePath, LinkOption.NOFOLLOW_LINKS))
Files.createFile(thePath);
Si noti che diversamente File
, questi saranno generare eccezioni se la creazione di file non riesce! E quelli rilevanti (ad esempio, AccessDeniedException
, ReadOnlyFileSystemException
, ecc. Ecc.)
Vedere here per ulteriori informazioni. Vedi anche why you should migrate to java.nio.file
, quickly.
Quindi non esiste un codice di linea per farlo? – emotionull
No, ma è davvero importante? ;) Puoi semplicemente creare il tuo metodo di utilità se vuoi, questo non è proprio un problema – fge
provare {Files.createFile (thePath); } catch (FileAlreadyExistsException ignorato) {} – mac01021
Si può fare
File f = new File("pathToYourFile");
if(!f.exists() && !f.isDirectory())
{
f.createNewFile()
}
Se si desidera utilizzare NIO.2 è possibile utilizzare i metodi della classe file.
boolean exists(Path path,LinkOption. . . options)
Path createTempFile(Path dir, String prefix,String suffix, FileAttribute<?>. . . attrs)
createFile(Path path, FileAttribute<?>... attrs)
Come fge ha accennato nei commenti createNewFile()
metodi restituisce boolean
valore che indica se il file è stato effettivamente creato o meno. Sfortunatamente non c'è modo di sapere perché ha fallito. In effetti, questo è uno dei motivi per cui sono state introdotte le API di I/O NIO.2.
E ... Non si controlla il risultato di '.createNewFile()'! – fge
AFAIK Java 8 non cambia il modo in cui lavoriamo con i file. – alfasin
@alfasin Java 7 (e quindi anche Java 8) lo ha cambiato immensamente con java.nio.file; e oggi, sfortunatamente, è ancora sottoutilizzato – fge
@fge Abbastanza vero. Lo rimuoverò. – Biffen