2011-05-17 129 views
4

我試圖寫入txt文件。
但沒有丟失已存儲在文件中的數據。如何將數據追加到文件?

但我的問題是,當我把字符串放在txt文件中時,新字符串會覆蓋舊的字符串,我把它放在之前。

我的代碼是:

public void addWorker(Worker worker){ 
     workers.put(worker.getId(), worker); 

    } 

    public void printWorker (String id){ 
    Worker work = (Worker) workers.get(id); 

    if (work == null) { 
     System.out.println("Worker NOT found"); 
    } 

    else { 
     work.printText(); 
    } 
    } 
     public void printWorkers() { 
      if (workers.size() == 0) { 
       System.out.println("No workres"); 
       return; 
      } 

      Collection<Worker> c = workers.values(); 
      Iterator<Worker> itr = c.iterator(); 
      System.out.println("Workers in division "+dName+ ":"); 
      while (itr.hasNext()) { 
        Worker wo = itr.next(); 
        wo.printText(); 
      } 
     } 

     public void writeToFile(){ 
      PrintWriter pw = null; 
      try{ 
       pw = new PrintWriter(new File("d:\\stam\\stam.txt")); 
       Collection<Worker> c = workers.values(); 
       Iterator<Worker> itr = c.iterator(); 
       while (itr.hasNext()) { 
        Worker wo = itr.next(); 
        pw.write("worker: "+wo.getId()+", "+wo.getName()+", "+wo.getAddress()+", "+wo.getSex()); 
        pw.println(); 
       } 
      } 
      catch(Exception e) { 
       System.out.println(e); 
      } 
      finally { 
       if (pw != null) { 
        pw.close(); 
       } 
      } 

     } 

} 

你能幫助我嗎?

回答

2

使用與第二個參數FileWriter的「真」和一個的BufferedWriter:

FileWriter writer = new FileWriter("outFile.txt", true); 
BufferedWriter out = new BufferedWriter(writer); 
8

你必須將Stream追加模式是這樣的:

pw = new PrintWriter(new FileWriter("d:\\stam\\stam.txt", true)); 
3

創建一個獨立的變量來強調,附加到文件。

boolean append = true; 
pw = new PrintWriter(new FileWriter(new File("filepath.txt"), append)); 
1

在Java 7,

Files.write(FileSystems.getDefault().getPath(targetDir,fileName), 
strContent.getBytes(),StandardOpenOption.CREATE,StandardOpenOption.APPEND);