簡體   English   中英

從Java應用程序存儲並將新行+日期戳添加到文檔中

[英]store and add new line + date stamp to document from java app

您好,我已經編寫了一個應用程序,可以將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();
                }
            }
        }
    }


   }

謝謝

嘗試這個

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

而不是使用FileWriter 我用Java做了一個記事本,這就是我用的。 3行代碼,它完美地工作。 對於日期,您可以簡單地使用Date(),導入java.util.Datejava.sql.Timestamp

Date date= new Date();
Timestamp ts = new Timestamp(date.getTime()));

你可以試試:

File file = new File("test.txt");

// Create the file if it doesn't exist
if(!file.exists()){
    file.createNewFile();
}

// With true you append
FileWriter fileWritter = new FileWriter(file.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(data);
bufferWritter.close();

您可以使用以下代碼替換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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM