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
logsno existe recibirásjava.io.IOException: No such file or directoryDato curioso para los desarrolladores de Android: llama a los gustos de
Files.createDirectories()yPaths.get()funcionaría cuando se admite min api 26.fuente