BufferedWriter只打印文件的最后一行?

时间:2015-10-20 18:23:52

标签: append filewriter bufferedwriter

在下面的代码中,我尝试在文件中写入更多的文本行,但它只显示最后一行。

也许有人会帮忙?

由于

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

3 个答案:

答案 0 :(得分: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 {}

修改:这对我有用

答案 1 :(得分:0)

感谢您的时间和帮助。

下面是我试过的Testcode,也许我们可以找到如何添加更多行。

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();
}
} 

答案 2 :(得分:0)

最后我解决了,非常感谢你。

这是for循环中的一个问题。开始为该参数提供字符串的方法必须用括号括起来。

对不起这个小错误。

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