2013-03-12 131 views
0

我想複製一個文本文件,但是當代碼完成執行時,我只有文件的最後一行文本。顯然scanLine()保持覆蓋相同的線,但我不能解決這個問題。有任何想法嗎?寫入一個文件,但只保存最後一行

do{     
    try{ 
    FileWriter name = new FileWriter("/home/fok/Desktop/out"); 
    BufferedWriter out = new BufferedWriter(name); 
    a=x.nextLine();scanner x grabs next line and sets it string a 
    out.write(a);//writes a to file 
    out.close();//closees file 
    } catch (IOException ioe){ 
    System.out.println("file writer error"); 
    } 

} while(x.hasNext()); 

回答

1

這很簡單,你正在關閉並打開for循環內的文件。

public void readfile(){ 
    try {   
    FileWriter name = new FileWriter("/home/fok/Desktop/out"); 
    BufferedWriter out = new BufferedWriter(name); 
     do {     
     a=x.nextLine();scanner x grabs next line and sets it string a 
     out.write(a);//writes a to file 
     } while(x.hasNext()); 
     out.close();//closees file 
    } catch (IOException ioe){ 
     System.out.println("file writer error"); 
    } 
} 
+0

但隨後它不能看到bufferreader出來,但filewritter和bufferreader必須在嘗試捕捉因此與範圍我必須在同一塊out.write還是有anotherway希望得到幫助 – user2155009 2013-03-12 20:45:36

相關問題