2

我想让 Applet 写入文本文件。我认为已经用我自己的证书克服了安全问题,但是文本文件没有收到输出。

我的 Applet 可以在tomrenn.com/fallball上看到,并且应该询问您是否信任该证书。

我不确定 Applet 是否可以写入网络托管内容中的文本文件,所以我问这是否可能;如果没有,至少可以在本地机器上完成。我一直在使用FileOutputStream,但我的老师推荐了这种非常基本的输出方法。

public void writeToFile()
{
  try {
     java.io.File file = new java.io.File("highscores.txt");
     java.io.PrintWriter output = new java.io.PrintWriter(file);
     output.print(name + " " +score);
     output.close();
  } catch (IOException e) {
     System.err.println ("Unable to write to file");
     System.exit(-1);
  }
}

这不是我要实现的,只是想看看我是否得到任何输出。感谢您查看我的问题!

4

4 回答 4

3

在 Applet 中,您不能直接写入服务器的文件系统。您可以向服务器发出请求,使服务器写入自己的文件系统,但 Applet 无法写入远程机器上的文件系统。(当然,除非它挂载了 NFS 或其他。)例如,要发出这样的请求,您可以使用Apache HttpClient发出 HTTP 请求。这可能比您正在寻找的更重量级。您还可以让客户端向服务器发出 POST 以说“这是我的高分”,并让服务器管理高分。

已签名的 Applet 有权写入运行 Applet 的人的本地文件系统。如果您正在写入“当前目录”(而不是绝对完整路径),请确保您知道 Applet 正在运行的目录。否则您可能确实创建了一个文件,但无法找到它!

于 2009-06-12T01:25:17.520 回答
2

如果您想要一个小程序在本地机器上存储数据,从 6u10 开始javax.jnlp.PersistenceService可用。创建一个安全的“签名小程序”很困难,我不会向任何人推荐它。

于 2009-06-12T06:56:10.390 回答
1

小程序在客户端上运行,因此无法访问服务器磁盘。您发布的代码将写入客户端本地磁盘。我建议更改它以指定要放置文件的目录。用户主目录似乎是一个好地方

java.io.File file = new java.io.File(System.getProperty("user.home"), "highscores.txt");
于 2009-06-12T01:29:43.793 回答
1

只需签署你的小程序。使用 netbeans 很容易。

  1. 在netbeans中打开项目。
  2. 右键单击您的项目并选择属性现在您将拥有新窗口。
  3. 在该窗口上转到 > 应用程序 > webstart。
  4. 检查启用 webstart。
  5. 在签名时按自定义按钮,然后选择“由生成的密钥自签名”。
  6. 检查“小程序描述符”并定位您的小程序。
  7. 按确定。

  8. 重建项目(现在 netbeans 将创建具有所有权限的证书)

  9. 在您的项目 dist 目录中使用“launch.html”通过 jnlp 运行小程序。

就这样。

** 使用的 netbeans 版本 = 7.0 ** 使用的 JDK = 1.6 ** 证书将在 6 个月后过期。

谢谢

于 2012-11-30T22:05:56.720 回答