我想让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);
}
}
这不是我要实现的,只是试图看看我是否得到任何输出。感谢您查看我的问题!
答案 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很容易。
按好。
重建项目(现在netbeans将创建具有所有权限的证书)
在您的项目目录中使用“launch.html”通过jnlp运行applet。
就是这样。
**使用的netbeans版本= 7.0 **使用JDK = 1.6 **证书将在6个月后到期。
由于