2015-10-20 43 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); 
}