Как открыть файл в режиме совместного использования в Java - PullRequest
5 голосов
/ 24 января 2012

Как открыть файл в режиме совместного использования в Java, чтобы другие пользователи могли читать и изменять файл?

Спасибо

Ответы [ 2 ]

1 голос
/ 24 января 2012

Я не совсем уверен, что знаю, что вы имеете в виду, но если вы имеете в виду одновременное изменение файла, это не простой процесс.На самом деле, это довольно сложный процесс, и не существует простого способа сделать это, исходя из моей головы:

  • Решите, будет ли файл обновляться для каждого пользователя, когда его изменяет кто-то другой,потеря всех изменений или что делать в этом случае;
  • Обработка различий и слияния, если необходимо;
  • Обработка синхронизации для одновременной записи в один и тот же файл, так что когда два пользователя хотят записать этофайл, содержимое не заканчивается бессмысленно, например, если один пользователь хочет написать «foo», а другой хочет написать «bar», содержимое может оказаться «fbaroo» без синхронизации.

Если вы просто хотите открыть файл в режиме только для чтения, все, что вам нужно сделать, это открыть его через FileInputStream или что-то подобное, объект, который разрешает только операции чтения.

0 голосов
/ 07 сентября 2018

Если вы спрашиваете о платформе 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...