2013-06-19 73 views
0

你好,我已經編寫了一個應用程序,從TextArea寫入文本文件,但問題是,他確實寫了它,但它並沒有存儲它,當我再次打開它時,要在同一文本文檔中寫入更多(或創建一個新文檔)。 我怎麼能這樣做? 而我需要的是一個aditional信息是如何添加日期戳alonside我輸入文本文件中的文本? 這裏是我的代碼:存儲並添加新的行+日期戳到文檔從Java應用程序

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(); 
       } 
      } 
     } 
    } 


    } 

感謝

回答

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

+0

您向我顯示的代碼無法工作,bufferWritter.write(text +「---」+ ts); bufferWritter.close();說它不能被重新解釋爲符號和file.getame說同樣的?這是什麼意思? - s(sorr i; m no noob:D) – Victor

+0

@ЗапорожанВиктор我的不好:)現在編碼已經被修正了。 –

+0

謝謝你,夥計!非常 – Victor

0

試試這個

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())); 
0

你可以試試:

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(); 
相關問題