0

こんにちは、TextArea からテキスト ドキュメントに何かを書き込むアプリケーションをコーディングしましたが、問題は、彼はそれを書きますが、それを保存せず、もう一度開いたときに、同じテキスト ドキュメントにさらに書き込むことです (または新しいドキュメントを作成します)。どうすればそれができますか?そして、私が必要とする追加情報は、テキスト ドキュメントに入力したテキストの横に日付スタンプを追加する方法です。これが私のコードです:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileWriter;
import java.io.IOException;


public class Write extends JFrame {
    JTextArea text;

    public Write() {
        this.setTitle("Writerz!");
        setSize(400, 200);
        setResizable(false);
        setLocation(370, 150);
        setLayout(null);

        JLabel lbltitlu = new JLabel("Insert your text here");
        lbltitlu.setBounds(85, 5, 120, 25);
        this.add(lbltitlu);

        final JTextArea text = new JTextArea();
        text.setSize(199, 199);
        text.setBounds(85, 65, 120, 25);
        add(text);

        JButton btn = new JButton("Add text");
        btn.setSize(99, 99);
        btn.setBounds(125, 125, 120, 25);
        add(btn);

        ActionListener listenerbtn = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO auto- generated method
                String actionbtn = arg0.getActionCommand();

                if (actionbtn.equals("Add text")) {
                    Adauga(text.getText());


                }
            }
        };
        btn.addActionListener(listenerbtn);
    }

    public void Adauga(String text) {
        String filename = "test.txt";

        FileWriter writer = null;
        try {
            writer = new FileWriter(filename);
            writer.write(text);
        } catch (IOException exception) {
            System.err.println("Save oops");
        } finally {
            if (writer != null) {
                try {
                    writer.close();
                } catch (IOException exception) {
                    System.err.println("Error closing writer");
                    exception.printStackTrace();
                }
            }
        }
    }


   }

ありがとう

4

3 に答える 3

0

Adauga メソッドを次のコードに置き換えることができます。

public void Adauga(String text) {
    java.util.Date date = new java.util.Date();
    Timestamp ts = new Timestamp(date.getTime());
    BufferedWriter bufferWritter = null;
    try {
        File file = new File("test.txt");
        FileWriter fileWritter = new FileWriter(file, true);
        bufferWritter = new BufferedWriter(fileWritter);
        bufferWritter.write("Hello: " + " --- " + ts + "\r\n");
        bufferWritter.close();
    } catch (IOException exception) {
        System.err.println("Save oops");
    } finally {
        if (bufferWritter != null) {
            try {
                bufferWritter.close();
            } catch (IOException exception) {
                System.err.println("Error closing writer");
                exception.printStackTrace();
            }
        }
    }
}

パッケージ java.sql.Timestamp および java.util.Date をインポートする必要があることに注意してください。

于 2013-06-19T08:20:23.873 に答える
0

これを試して

BufferedWriter out = new BufferedWriter(new FileWriter(path));
out.write(text.getText());
out.close();

を使用する代わりにFileWriter。私はJavaでメモ帳を作成しました。それが私が使用しているものです。3行のコードで完璧に動作します。日付については、Date()、インポートjava.util.Date、およびjava.sql.Timestamp.

Date date= new Date();
Timestamp ts = new Timestamp(date.getTime()));
于 2013-06-19T07:54:57.863 に答える