Mam warunek, aby sprawdzić, czy określony plik istnieje przed kontynuowaniem ( ./logs/error.log
). Jeśli nie zostanie znaleziony, chcę go utworzyć. Jednak będzie
File tmp = new File("logs/error.log");
tmp.createNewFile();
również tworzyć, logs/
jeśli nie istnieje?
File theDir = new File(DirectoryPath); if (!theDir.exists()) theDir.mkdirs();
źródło
File directory = new File(tmp.getParentFile().getAbsolutePath()); directory.mkdirs();
Jeśli katalogi już istnieją, nic się nie stanie, więc nie potrzebujesz żadnych kontroli.
źródło
Styl Java 8
Path path = Paths.get("logs/error.log"); Files.createDirectories(path.getParent());
Zapisać w pliku
Files.write(path, "Log log".getBytes());
Czytać
Pełny przykład
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(); } } }
źródło
StringUtils.touch(/path/filename.ext)
teraz (> = 1.3) utworzy również katalog i plik, jeśli nie istnieją.źródło
FileUtils.touch(new File(file_path))
Nie, a jeśli
logs
nie istnieje, otrzymaszjava.io.IOException: No such file or directory
Ciekawostka dla programistów Androida: wywołuje podobne
Files.createDirectories()
iPaths.get()
działałoby przy obsłudze min api 26.źródło