FileNotFoundException quando si cerca di scrivere su un file
-
23-09-2019 - |
Domanda
OK, mi sento come questo dovrebbe essere facile, ma sto ovviamente manca qualcosa di fondamentale per la scrittura del file in Java. Ho questo:
File someFile = new File("someDirA/someDirB/someDirC/filename.txt");
e voglio solo scrivere sul file. Tuttavia, mentre someDirA esiste, someDirB (e quindi someDirC e filename.txt) non esistono. In questo modo:
BufferedWriter writer = new BufferedWriter(new FileWriter(someFile));
lancia una FileNotFoundException
. Beh, ehm, non scherzo. Sto cercando di creare, dopo tutto. Devo spezzare il percorso del file in componenti, creare le directory e quindi creare il file prima di creare un'istanza dell'oggetto FileWriter?
Soluzione
È necessario creare tutte le directory precedenti prima. E qui è come farlo. È necessario creare un oggetto che rappresenta il percorso che si desidera di esistere e quindi chiamare .mkdirs () su di esso. Quindi assicuratevi di creare il nuovo file.
final File parent = new File("someDirA/someDirB/someDirC/");
if (!parent.mkdirs())
{
System.err.println("Could not create parent directories ");
}
final File someFile = new File(parent, "filename.txt");
someFile.createNewFile();
Altri suggerimenti
È possibile utilizzare il metodo "mkdirs" sulla classe File in Java. mkdirs creeranno la directory, e creerà le directory principali inesistenti, se necessario.
http : //java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#mkdirs%28%29