如何在Java中以共享模式打开文件

时间:2012-01-24 09:46:42

标签: java file-io

如何在Java中以共享模式打开文件以允许其他用户读取和修改文件?

由于

2 个答案:

答案 0 :(得分:1)

我不完全确定我知道你的意思,但如果你的意思是同时修改文件,那不是一个简单的过程。实际上,它非常复杂,而且没有简单的方法可以做到这一点,我必须要做到这一点:

  • 决定当其他人修改文件时,是否为每个用户刷新文件,丢失所有更改或在该情况下要执行的操作;
  • 处理差异&合并,如有必要;
  • 处理同步写入同一文件的同步,以便当两个用户想要写入该文件时,内容不会乱码,例如,如果一个用户想要写“foo”而另一个想要写“bar”,内容可能会在没有同步的情况下变成“fbaroo”。

如果您只想以只读模式打开文件,您只需通过FileInputStream或类似的东西打开它,这个对象只允许阅读操作。

答案 1 :(得分:0)

如果您要询问的是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