如何防止有人删除我的程序当前正在使用的文件?

时间:2017-05-05 10:32:09

标签: java file exception

我有一个程序,暂时将一些对象保存到我的硬盘中,但只能在几分钟后重新加载:

这是方法:

private void save(Object myObject, String path) throws IOException {
        final BufferedOutputStream bf = new BufferedOutputStream(
                new FileOutputStream(path));

        final ObjectOutputStream objOut = new ObjectOutputStream(bf);

        objOut.writeUnshared(myObject);

        bf.close();
        bf.flush();
        objOut.flush();
        objOut.reset();
    }

问题在于我能够在运行时从磁盘中删除该文件,并在以后以NoSuchFileException结束: 如何防止这种情况发生?

我也尝试过使用

objOut.writeObject(myObject);

而不是

objOut.writeUnshared(myObject);

但仍然没有...

有人能帮助我吗?谢谢!

编辑阅读评论以获取更详细的请求说明!

1 个答案:

答案 0 :(得分:0)

基本上你不能,但你可以通过以下方式缓解这个问题:

  • 创建一个特定的系统用户来执行您的Java应用程序
  • 创建仅对该系统用户可见的文件夹
  • 使用该用户启动您的Java应用

这可以缓解这个问题,因为人们总是可以记录之前定义的系统用户,因此可以完全控制私人文件。

您还可以隐藏保存文件的目录,以便人们更难删除它们。