繁体   English   中英

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

[英]How to open file in shared mode in Java

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

谢谢

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM