2015-10-20 42 views
0

在下面的代碼中,我嘗試在文件中寫入更多的文本行,但它只顯示最後一行。BufferedWriter只打印文件的最後一行?

也許有人可能會幫助嗎?

感謝

try (BufferedWriter writer = new BufferedWriter(new FileWriter(file, true))) { 
     writer.append("***"); 
     writer.append(aF); 

回答

0

我覺得應該是

try { 
     BufferedWriter writer = new BufferedWriter(new FileWriter(file, true)); 
     writer.append("***\r\n"); 
     writer.append("more text here\r\n"); 
     writer.close(); 
} catch (IOException ex) { 
     ex.printStackTrace(); 
} 

我可能是錯的,但我從來沒有與try {}

編輯看到了:這個工作對我來說

+0

IDE選擇了這個。 –

+0

woops我的壞,我認爲這是C#,但顯然它是Java。在下次指定你正在工作的語言時可能很有用。我會嘗試做一個小測試項目,看看我能否找到解決方案 –

+0

對不起,它是Java 8. String aF來自Array。在out.println(aF)上;它的作品,但不與作家(aF);。 –

0

非常感謝時間和幫助。

下面是我試過的一個測試代碼,也許我們可以找出如何添加更多的行。

public class FsIterateTest { 
File f; 
String[] fsl; 
String path = "C:/"; 
String ps; 
File fp; 
String ln; 
String[] s; 
List<String> contentAsList; 
public static void main(String[] args) throws IOException { 

new FsIterateTest().hfsList(); 
} 

private void hfsList() throws IOException { 
    //System.out.println(ln); 
    fp = new File("C://"); 
    fp.isDirectory(); 
    System.out.println(fp.isDirectory()); 
    s = fp.list(); 
    contentAsList = Arrays.asList(s); 
    for(String fs : contentAsList){ 
    this.ln = fs; 
    }hfsWrite(ln); 
} 

private void hfsWrite(String ln) throws IOException { 
    System.out.println(ln); 
    File nf = new File("C://db.txt"); 
    FileWriter fw = new FileWriter(nf); 
    BufferedWriter bw = new BufferedWriter(fw); 
    bw.newLine(); 
    bw.write(ln); 
    bw.append("\r\n"); 
    bw.flush(); 
    bw.close(); 
} 
} 
+1

請使用您問題上的編輯鏈接添加其他信息。後回答按鈕應該只用於問題的完整答案。 –

+0

我很抱歉,好的,我會爲其他問題做。 –

0

最後我解決了它,非常感謝。

這是由於for循環中的問題。開始給參數賦予字符串的方法必須在括號括起來的循環中。

對不起這個小錯誤。

for(String fs : contentAsList) { 
this.ln = fs; 
hfsWrite(ln); 
}