C'è un modo per utilizzare FileOutputStream in modo che se un file (nome file String) non esiste, quindi lo creerà?Java FileOutputStream Crea file se non esiste
FileOutputStream oFile = new FileOutputStream("score.txt", false);
C'è un modo per utilizzare FileOutputStream in modo che se un file (nome file String) non esiste, quindi lo creerà?Java FileOutputStream Crea file se non esiste
FileOutputStream oFile = new FileOutputStream("score.txt", false);
Si lancerà una FileNotFoundException
se il file non esiste e non può essere creata (doc), ma creerà, se si può. Per essere sicuro che probabilmente dovrebbe prima prova che il file esista prima di creare il FileOutputStream
(e creare con createNewFile()
se non lo fa):
File yourFile = new File("score.txt");
yourFile.createNewFile(); // if file already exists will do nothing
FileOutputStream oFile = new FileOutputStream(yourFile, false);
File f = new File("Test.txt");
if(!f.exists())
f.createNewFile();
passare questo f
al FileOutputStream
costruttore.
questo ha creato il file se non è stato trovato, grazie. –
La migliore risposta qui. +1. – m4heshd
È possibile ottenere uno FileNotFoundException
se il file non esiste.
documentazione Java dice:
O meno di un file è disponibile o può essere creato dipende dalla piattaforma sottostante http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Se stai usando Java 7 è possibile utilizzare il pacchetto java.nio:
Il parametro options consente di specificare come il file viene creato o aperto ... esso apre il file per la scrittura, la creazione del file se non esiste ...
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html
È possibile creare un file vuoto se esiste o no ...
new FileOutputStream("score.txt", false).close();
se si vuole lasciare il file se esiste ...
new FileOutputStream("score.txt", true).close();
si otterrà solo un FileNotFoundException se si tenta di creare il fi le in una directory che non esiste.
Getta 'FileNotFoundException' in entrambi i casi. – mixel
Prima di creare un file, è necessario creare tutte le directory padre.
Usa yourFile.getParentFile().mkdirs()
FileUtils da Commons Apache è un buon modo per raggiungere questo obiettivo in una sola riga.
FileOutputStream s = FileUtils.openOutputStream("/home/nikhil/somedir/file.txt")
Questo creerà cartelle principali, se non esistono e creare un file se non esiste e un'eccezione se oggetto file è una directory o non può essere scritto. Questo è equivalente a :
File file = new File("/home/nikhil/somedir/file.txt");
file.getParentFile().mkdirs(); // Will create parent directories if not exists
file.createNewFile();
FileOutputStream s = new FileOutputStream(file,false);
Tutte le operazioni di cui sopra sarà un'eccezione se l'utente corrente non è autorizzato a fare l'operazione.
Crea file se non esiste.Se le uscite di file, cancellare il suo contenuto:
/**
* Create file if not exist.
*
* @param path For example: "D:\foo.xml"
*/
public static void createFile(String path) {
try {
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
} else {
FileOutputStream writer = new FileOutputStream(path);
writer.write(("").getBytes());
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
solo dando un modo alternativo per creare il file solo se non esiste per mezzo del percorso e file.
Path path = Paths.get("Some/path/filename.txt");
Files.createDirectories(path.getParent());
if(!Files.exists(path))
Files.createFile(path);
Files.write(path, ("").getBytes());
se il file non esiste, come creo un file .txt vuoto? –
@StefanDunn con il metodo 'createNewFile()', come mostrato nel mio esempio. – talnicolas
La condizione è ridondante. Secondo [JavaDoc] (http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html#createNewFile%28%29), 'createNewFile()' stesso controlla atomicamente il esistenza del file. – aztek