0

私の問題は、ドキュメントを Netbeans に保存することです。Netbeans で Java を使用してプログラムを作成しました。最初に登録します (登録ボタンをクリックすると、ユーザーの名前で新しいユーザー マップが作成されます)。次に、ユーザー名とパスワードでログインします。ログインすると、ドキュメントを作成できる新しいウィンドウが表示されます。TextArea にテキストを書き込むことができます。次に、テキストの書き込みが終了したら、[保存] ボタンをクリックします。作成したテキストは、jTextField で指定したテキストにちなんで名付けられたドキュメントに保存されます。したがって、ログインごとに絶対パスが変わります。

これは送信ボタンの私のコードです:

//ccc is the name of user map
String ccc = LogIn.uporabnik1;
try{
    FileWriter writer = new FileWriter("C:\\Users\\ALEKS\\Documents\\NetBeansProjects\\EasyEdit\\"+ccc+"\\"+FileName+".txt");
    BufferedWriter bw = new BufferedWriter (writer);
    jTextArea1.write(bw);
    bw.close();
    jTextArea1.setText("");
    jTextArea1.requestFocus();
    writer.close();
}
catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
}
4

1 に答える 1

2

パスに余分なスペースがあるタイプミスがあるようです。

別の方法として、Java 7 以降を使用している場合は、Paths ユーティリティ クラスを使用して、OS 固有のセパレータ (\\または/)を処理することなくパスを生成することもできます。

Path path = Paths.get("C:/Users/ALEKS/Documents/NetBeansProjects/EasyEdit/" 
                     + ccc + "/" + FileName + ".txt");

文字列をファイルに書き込むには:

String text = jTextArea1.getText();
Files.write(path, text.getBytes("UTF-8"));

これにより、コードが短くなり、ストリームを手動で作成して閉じる必要がなくなります。

最後に、操作に時間がかかる場合は、GUI スレッドを使用せず、代わりにバックグラウンド スレッドを使用する必要があります。そうしないと、保存操作の進行中にアプリケーションが応答しなくなります。

于 2013-06-02T19:26:48.370 に答える