続行する前に特定のファイルが存在するかどうかを確認する条件があります(./logs/error.log
)。見つからない場合は作成します。しかし、意志
File tmp = new File("logs/error.log");
tmp.createNewFile();
logs/
が存在しない場合も作成しますか?
番号。
ファイルを作成する前にtmp.getParentFile().mkdirs()
を使用してください。
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());
読むために
System.out.println(Files.readAllLines(path));
完全な例
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)。
いいえ、logs
が存在しない場合は、_Java.io.IOException: No such file or directory
_を受け取ります
Android devs:Files.createDirectories()
やPaths.get()
のようなものを呼び出すことは、最小API 26をサポートするときに機能します。