签名的Java Applet写入文本文件

时间:2009-06-12 01:17:52

标签: java file text applet signed-applet

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

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

我不确定Applet是否可以写入Web托管内容中的文本文件,所以我问这是否可行;如果没有,至少能够在本地机器上进行。我一直在使用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 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

java.io.File file = new java.io.File(System.getProperty("user.home"), "highscores.txt");

答案 3 :(得分:1)

只需在您的applet上签名即可。 使用netbeans很容易。

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

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

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

  10. 就是这样。

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

    由于