2017-08-30 170 views
0

晚上好,追加一個文本文件到另一個在Java中

我是全新的,以問問題在這裏,很抱歉,如果我這樣做是錯誤的。 我想追加一個完整的.txt文件到另一個結尾,在一個新行,而不重寫內容。

例如,我有這個在此時就把one.txt存盤

TEST 1 00001 BCOM 

,我有這two.txt,

TEST 2 00001 BCOM 

這是唯一的工作代碼,我發現將複製/覆蓋到另一個文件, 所有其他我複製,重寫文件路徑和名稱,並試過,它不適用於我。我仍然是Java的初學者。

import java.io.*; 
class CompileData { 
    public static void main(String args[]) { 
     FileReader fr = null; 
     FileWriter fw = null; 
     try { 
      fr = new FileReader("one.txt"); 
      fw = new FileWriter("two.txt"); 
      int c = fr.read(); 
      while(c!=-1) { 
       fw.write(c); 
       c = fr.read(); 
      } 
     } catch(IOException e) { 
      e.printStackTrace(); 
     } finally { 
      close(fr); 
      close(fw); 
     } 
    } 
    public static void close(Closeable stream) { 
     try { 
      if (stream != null) { 
       stream.close(); 
      } 
     } catch(IOException e) { 
     } 
    } 
} 

有了這個代碼,而不是讓這對two.txt

TEST 1 00001 BCOM 
TEST 2 00002 BCOM 

我只得到了two.txt

TEST 1 00001 BCOM 

任何幫助,技巧,三分球和答案將是欣賞!

回答

0

爲此,您可以使用FileWriter的append功能 - 通過調用接受布爾值的參數化構造函數是否追加。

入住這裏File Writer - append

import java.io.*; 

class CompileData { 
    public static void main(String args[]) { 
     FileReader fr = null; 
     FileWriter fw = null; 
     try { 
      fr = new FileReader("one.txt"); 
  fw = new FileWriter("two.txt",true); 

輸出

TEST 2 00002 BCOM
TEST 1 00001 BCOM

如果您想追加文件開始,您可以使用RandomAccessFile追加到所需的位置。更多細節在這裏 - RandomAccessFile API

RandomAccessFile f = new RandomAccessFile(new File("two.txt"), "rw"); 
f.seek(0); 
f.write("TEST 1 00001 BCOM".getBytes()); 
f.close(); 
相關問題