0

テキストファイルの情報を使用してデータをロードおよび保存するJAppletを作成しようとしています。アプレットに情報をロードすることに成功しましたが、保存に問題があるようです。以下に保存するコードを含めました。私が使用しているファイル名は、書き込みに使用しているものと同じです。アプレットは正しく初期化されるため、実行時にファイルをJARに含める必要があります。書き込みが正しく機能しない理由はありますか?私はstop()メソッドとdestroy()メソッドの両方からこのメソッドを呼び出すことに頼っています。

注意として、Eclipseから実行すると、ロードと保存の両方が完全に機能しますが、JARの場合はロードのみが機能しますが、何も保存されないため、ロードデータを変更できません。

理想的には、ページが閉じられたり更新されたりするたびに、このsaveLocations()メソッドが呼び出されるようにします。

注:mOUtputStreamは確かにPrintWriterです(以前はOutputStreamでしたが、名前を変更する必要があると思います)

助けてくれてありがとう。


private void saveLocations() throws IOException {
        //JOptionPane.showMessageDialog(null, "Alert", "Saving", JOptionPane.INFORMATION_MESSAGE);
        // System.out.println("saving!");
        try {
            mOutputStream = new PrintWriter(new File(getClass().getResource("/listings/saveData.txt").toURI()));
        }
        catch (URISyntaxException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        //System.out.println(locations.size());
        for (Location l : locations) {
            System.out.println("r: " + l.getRawListing());
            mOutputStream.print(l.getRawListing()+ "\n");
        }


        if (mOutputStream != null)
            mOutputStream.close();

    }

4

1 に答える 1

2

JARファイル内のファイルに書き込むことはできません--期間。しようとさえしないでください。ファイルに書き込む必要がある場合、そのファイルはJARの外部にある必要があります。アプレットの場合は、署名する必要があり、ユーザーにそのための特定の許可を求める必要があります。

アプレットの場合、書き込み先のJARファイルのコピーがわかりません。ブラウザキャッシュ内のコピーですか、それともサーバー上のコピーですか。いずれにせよ、それは起こりません。

于 2011-04-04T00:55:42.073 に答える