В этом вопросе упоминается только обновление метки времени, но я все равно решил добавить это сюда. Я искал прикосновение, как в Unix, которое также создаст файл, если он не существует.
Для тех, кто использует Apache Commons, есть FileUtils.touch(File file)
, который делает именно это.
Вот источник из (встроенный openInputStream(File f)
):
public static void touch(final File file) throws IOException {
if (file.exists()) {
if (file.isDirectory()) {
throw new IOException("File '" + file + "' exists but is a directory");
}
if (file.canWrite() == false) {
throw new IOException("File '" + file + "' cannot be written to");
}
} else {
final File parent = file.getParentFile();
if (parent != null) {
if (!parent.mkdirs() && !parent.isDirectory()) {
throw new IOException("Directory '" + parent + "' could not be created");
}
}
final OutputStream out = new FileOutputStream(file);
IOUtils.closeQuietly(out);
}
final boolean success = file.setLastModified(System.currentTimeMillis());
if (!success) {
throw new IOException("Unable to set the last modification time for " + file);
}
}