À l'aide de Java nio pour créer un sous-répertoire et de fichier
Je suis de la création d'un programme simple qui va essayer de lire dans "conf/conf.xml" à partir du disque, mais si ce fichier ou dir n'existe pas de volonté au lieu de les créer.
Je peux le faire en utilisant le code suivant:
//create subdirectory path
Path confDir = Paths.get("./conf");
//create file-in-subdirectory path
Path confFile = Paths.get("./conf/conf.xml");
//if the sub-directory doesn't exist then create it
if (Files.notExists(confDir)) {
try { Files.createDirectory(confDir); }
catch (Exception e ) { e.printStackTrace(); }
}
//if the file doesn't exist then create it
if (Files.notExists(confFile)) {
try { Files.createFile(confFile); }
catch (Exception e ) { e.printStackTrace(); }
}
Mes questions est si c'est vraiment la façon la plus élégante pour ce faire? Il semble superflu d'avoir besoin de créer deux Chemins d'accès simple pour créer un nouveau fichier dans un nouveau sous-répertoire.
Path
a .resolve()
et .getParent()
, de sorte que vous pourriez commencer par làJe ne comprends pas votre logique d'exception: Pourquoi avez-vous essayez de créer le fichier si le répertoire n'existe pas et ne peut pas être créé?
OriginalL'auteur user3341332 | 2014-02-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez déclarer votre
confFile
commeFile
au lieu dePath
. Ensuite, vous pouvez utiliserconfFile.getParentFile().mkdirs();
, voir l'exemple ci-dessous:Ou, à l'aide de votre code, vous pouvez utiliser:
Pas de. Il ne jette pas des exceptions à tout. Voir la Javadoc.
Mais notez que
Path.getParent()
retournull
si il n'y a plus de pièces dans la "chaîne" de la Voie. Par exemple, unPath
avecdir/b.txt
sera de retour le chemindir
maisdir.getParent()
sera de retournull
. DoncFiles.createDirectories(dir.getParent());
jeter unNullPointerException
bien quedir
est dans un autre répertoire.pourquoi revenir à java.io.Fichier lorsque vous commencez avec java.nio.Chemin d'accès?
stackoverflow.com/questions/27069447/...
OriginalL'auteur Marko Grešak