Tengo un condicional para verificar si existe un determinado archivo antes de continuar ( ./logs/error.log
). Si no se encuentra, quiero crearlo. Sin embargo,
File tmp = new File("logs/error.log");
tmp.createNewFile();
también crear logs/
si no existe?
File theDir = new File(DirectoryPath); if (!theDir.exists()) theDir.mkdirs();
fuente
File directory = new File(tmp.getParentFile().getAbsolutePath()); directory.mkdirs();
Si los directorios ya existen, no sucederá nada, por lo que no necesita ninguna verificación.
fuente
Estilo Java 8
Path path = Paths.get("logs/error.log"); Files.createDirectories(path.getParent());
Para escribir en archivo
Files.write(path, "Log log".getBytes());
Leer
Ejemplo completo
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(); } } }
fuente
StringUtils.touch(/path/filename.ext)
ahora (> = 1.3) también creará el directorio y el archivo si no existen.fuente
FileUtils.touch(new File(file_path))
No, y si
logs
no existe recibirásjava.io.IOException: No such file or directory
Dato curioso para los desarrolladores de Android: llama a los gustos de
Files.createDirectories()
yPaths.get()
funcionaría cuando se admite min api 26.fuente