透明地保存应用程序数据

时间:2013-04-29 22:27:10

标签: java xml zip save hidden-files

我正在用java编写游戏,我想保存我的游戏。我将把它保存为一个zip文件中的一组XML文档。我想知道的是,如果他们是透明地这样做的方式,那么用户就无法编辑这些文件或找到它们。我曾想过只是隐藏文件,但这似乎是一种肮脏和丑陋的方式。我最不喜欢的隐藏文件是它们在系统之间似乎不兼容。如果他们无论如何都要将文件保存到jar中并从中读取它们也同样可以接受。在java中,似乎没有一种方法可以隐藏文件。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

我想知道的是,他们是否可以透明地执行此操作,以便用户无法编辑这些文件或找到它们。

最终,没有。

您在本地计算机上存储状态的任何操作最终都可以进行逆向工程,并且特权用户可以检索该状态。

但是你可以采取各种措施让人们难以“作弊”。例如,您可以加密文件,或生成种子散列以检测“修补”。


在Java 7上隐藏文件很简单:

Path path = FileSystems.getDefault().getPath("directory", "hidden.txt");
Boolean hidden = path.getAttribute("dos:hidden", LinkOption.NOFOLLOW_LINKS);
if (hidden != null && !hidden) {
    path.setAttribute("dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS);
}

(复制自:http://javarevisited.blogspot.com/2012/01/how-to-hide-file-java-program-example.html

在早期版本的Java上,您需要调用外部Windows应用程序或调用本机库来执行此操作。但请注意:

  • “隐藏”文件仅对无需查看的用户隐藏
  • 他们在不同平台上的工作方式不同;例如对于基于Linux / Unix的系统,“隐藏”只意味着文件名以“。”开头。