Если вы спрашиваете о платформе Windows, где файлы заблокированы на уровне файловой системы, вот как это сделать с помощью Java NIO:
Files.newInputStream(path, StandardOpenOption.READ)
И демонстрация того, что она действительно работает:
File file = new File("<some existing file>");
try (InputStream in = Files.newInputStream(file.toPath(), StandardOpenOption.READ)) {
System.out.println(file.renameTo(new File("<some other name>"));
}
Будет печататься true
, поскольку файл, открытый в режиме совместного чтения, может быть перемещен.
Для получения дополнительной информации см. java.nio.file.StandardOpenOption
.