2

アプレットでテキスト ファイルに書き込みたい。自分の証明書でセキュリティの問題を解決したと思いますが、テキスト ファイルが出力を受け取りません。

私のアプレットはtomrenn.com/fallballで見ることができ、証明書を信頼するかどうかを尋ねるはずです。

アプレットが 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

4 に答える 4

3

From an Applet, you cannot directly write to the server's file system. You can issue a request to the server that causes the server to write to its own file system, but an Applet does not have a way to write to a file system on a remote machine. (Of course, unless it's mounted NFS or otherwise.) To issue such a request, you could use Apache HttpClient to issue HTTP requests, for example. This may be more heavyweight than you are looking for. You can also have the client issue a POST to the server to say, "This is my high score," and let the server manage high scores.

A signed Applet has every right to write to the local file system of the person running the Applet. If you are writing to the "current directory" (rather than an absolute full path), then make sure you know what directory the Applet is running in. Otherwise you may indeed create a file, but not be able to find it!

于 2009-06-12T01:25:17.520 に答える
2

アプレットでローカル マシンにデータを保存する場合は、6u10 以降javax.jnlp.PersistenceServiceで使用できます。安全な「署名付きアプレット」を作成するのは難しいので、誰にもお勧めしません。

于 2009-06-12T06:56:10.390 に答える
1

アプレットに署名するだけです。ネットビーンズを使えば簡単です。

  1. プロジェクトを netbeans で開きます。
  2. プロジェクトを右クリックしてプロパティを選択すると、新しいウィンドウが表示されます。
  3. そのウィンドウで > application > webstart に移動します。
  4. ウェブスタートを有効にするにチェックを入れます。
  5. 署名時にカスタマイズボタンを押し、「生成された鍵による自己署名」を選択します。
  6. 「アプレット記述子」を確認し、アプレットをターゲットにします。
  7. OKを押します。

  8. プロジェクトを再構築します (現在、netbeans はすべての権限を持つ証明書を作成します)

  9. プロジェクトの dist dir で「launch.html」を使用して、jnlp 経由でアプレットを実行します。

それで全部です。

** 使用した netbeans バージョン = 7.0 ** 使用した JDK = 1.6 ** 証明書は 6 か月で期限切れになります。

ありがとう

于 2012-11-30T22:05:56.720 に答える
1

Applets run on the client so cannot access the servers disk. The code you posted will write to the clients local disk. I'd suggest changing it though to specify the directory you want to place the file. The users home directory would seem a good place for it

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