在下面的代碼中,我嘗試在文件中寫入更多的文本行,但它只顯示最後一行。BufferedWriter只打印文件的最後一行?
也許有人可能會幫助嗎?
感謝
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file, true))) {
writer.append("***");
writer.append(aF);
在下面的代碼中,我嘗試在文件中寫入更多的文本行,但它只顯示最後一行。BufferedWriter只打印文件的最後一行?
也許有人可能會幫助嗎?
感謝
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file, true))) {
writer.append("***");
writer.append(aF);
我覺得應該是
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 {}
編輯看到了:這個工作對我來說
非常感謝時間和幫助。
下面是我試過的一個測試代碼,也許我們可以找出如何添加更多的行。
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();
}
}
請使用您問題上的編輯鏈接添加其他信息。後回答按鈕應該只用於問題的完整答案。 –
我很抱歉,好的,我會爲其他問題做。 –
最後我解決了它,非常感謝。
這是由於for循環中的問題。開始給參數賦予字符串的方法必須在括號括起來的循環中。
對不起這個小錯誤。
for(String fs : contentAsList) {
this.ln = fs;
hfsWrite(ln);
}
IDE選擇了這個。 –
woops我的壞,我認爲這是C#,但顯然它是Java。在下次指定你正在工作的語言時可能很有用。我會嘗試做一個小測試項目,看看我能否找到解決方案 –
對不起,它是Java 8. String aF來自Array。在out.println(aF)上;它的作品,但不與作家(aF);。 –