У меня есть условие, чтобы проверить, существует ли определенный файл, прежде чем продолжить ( ./logs/error.log
). Если его нет, я хочу его создать. Однако будет
File tmp = new File("logs/error.log");
tmp.createNewFile();
также создать, logs/
если его не существует?
File theDir = new File(DirectoryPath); if (!theDir.exists()) theDir.mkdirs();
источник
File directory = new File(tmp.getParentFile().getAbsolutePath()); directory.mkdirs();
Если каталоги уже существуют, ничего не произойдет, поэтому вам не нужно никаких проверок.
источник
Стиль Java 8
Path path = Paths.get("logs/error.log"); Files.createDirectories(path.getParent());
Записать в файл
Files.write(path, "Log log".getBytes());
Читать
Полный пример
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)
теперь (> = 1.3) также создаст каталог и файл, если они не существуют.источник
FileUtils.touch(new File(file_path))
Нет, а если
logs
не существует, вы получитеjava.io.IOException: No such file or directory
Интересный факт для разработчиков Android: вызывает
Files.createDirectories()
иPaths.get()
работает при поддержке min api 26.источник