java - Java 小程序中的对象持久性

标签 java serialization applet persistence

保存 Java applet 状态的好方法是什么?

我可以处理文件的对象序列化/反序列化,但不知道它应该放在哪里,或者是否有一些“注册表”我可以只保存几个用户的设置。

这些设置依赖于硬件,所以我想将其保存在客户端上。

已授予小程序完全权限。

最佳答案

What is a good approach to save state of a Java applet?

对于受信任的小程序,有很多选择。

I can deal with object serialization/deserialization to/from a file but don't know where it should be placed..

将信息放在user.home 的子目录中。

  • user.home 将是一个可写的地方。
  • 一个子目录(例如,基于小程序类的包名称)以避免与其他应用程序的设置文件冲突。

..or if there's some 'registry' where I can just save a couple of user's settings.

我听说 Preferences类可以用于那个..

This data is stored persistently in an implementation-dependent backing store. Typical implementations include flat files, OS-specific registries, directory servers and SQL databases. The user of this class needn't be concerned with details of the backing store.

听起来不错,不是吗?唯一的麻烦是我从来没有能够举出一个例子,其中值在运行之间保持不变!


对象序列化带有一个巨大的警告,它可能随时中断。


我会寻找您自己指定的文件位置(例如,在 user.home 中)并使用 Properties XMLEncoder 的文件(用于简单名称/值对)/XMLDecoder (对于更复杂的 Java bean)。

对于前者,请参阅此 little example .后者在 JavaDocs 顶部的一个简短示例中进行了描述。


当然,如果此小程序部署在 Plug-In 2 架构 JRE 中并且可以访问 JNLP API,则它可以使用 PersistenceService .这是一个 demo. of the PersistenceService .

即使是沙盒小程序也可以使用 PersistenceService - 它类似于 Cookie 的概念,因为它适用于少量数据。

关于java - Java 小程序中的对象持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954183/

相关文章:

java - OpenJDK 10 拒绝所有 SSL 证书

java - 如何使用 Lambda 表达式将一组值从 ArrayList 添加到另一个 ArrayList

java - 如何调用H2 LINK_SCHEMA?

JavaApplet与Socket Server,刷新页面不会关闭端口

java - 在没有html firebug扩展的javascript中调用java方法

java - 如何在java中实现 "supplant"

java动态属性表

python - 如何在类中使用私有(private)方法反序列化 PyTorch 保存的模型?

c# - Entity Framework 不加载相关对象

java - 如何将java多类小程序转换为html文件