J'ai une condition pour vérifier si un certain fichier existe avant de continuer (./logs/error.log
). S'il n'est pas trouvé, je veux le créer. Cependant,
File tmp = new File("logs/error.log");
tmp.createNewFile();
créer également logs/
s'il n'existe pas?
Non.
Utilisez tmp.getParentFile().mkdirs()
avant de créer le fichier.
File theDir = new File(DirectoryPath);
if (!theDir.exists()) theDir.mkdirs();
File directory = new File(tmp.getParentFile().getAbsolutePath());
directory.mkdirs();
Si les répertoires existent déjà, rien ne se passera, vous n'avez donc besoin d'aucun contrôle.
Style Java 8
Path path = Paths.get("logs/error.log");
Files.createDirectories(path.getParent());
Écrire sur dossier
Files.write(path, "Log log".getBytes());
Lire
System.out.println(Files.readAllLines(path));
Exemple complet
public class CreateFolderAndWrite {
public static void main(String[] args) {
try {
Path path = Paths.get("logs/error.log");
Files.createDirectories(path.getParent());
Files.write(path, "Log log".getBytes());
System.out.println(Files.readAllLines(path));
} catch (IOException e) {
e.printStackTrace();
}
}
}
StringUtils.touch(/path/filename.ext)
créera maintenant (> = 1.3) le répertoire et le fichier s’ils n’existent pas.
Non, et si logs
n'existe pas, vous recevrez Java.io.IOException: No such file or directory
Fait amusant pour les développeurs Android: les appels tels que Files.createDirectories()
et Paths.get()
fonctionneraient avec le support de min api 26.