2013-02-17 259 views
0

我已经看过无数的论坛帖子和关于如何写入文件的文章,但无济于事,我碰到了一个有用的。我使用,目前,一个FileWriter声明了:Java:如何写入文本文件,而不覆盖和写在新行

public FileWriter filewriter; 

,然后用

try { 
     filewriter = new FileWriter(textfile, true); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

initated然后我写文件,:

try { 
     filewriter.write(string + "string"); 
     filewriter.flush(); 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 

那么,如何使它这样我的作者就不会覆盖当前文本,并且会在文本中添加新行。

例如(尝试使用这些为例):我想下面

  1. 转到写信给镇
  2. 然后右转
  3. 然后进入酒馆
  4. 说嗨,老人在紫色

那么我该怎么做,写完全从Java。在不同的时间都会发起煽动,比如每当你点击一个按钮时,第一行写道,无论何时再次点击它,它都会写第二行,等等。

+0

提示,看看'filewriter.flush();' – Coffee 2013-02-17 00:09:40

+2

http://www.mkyong.com/java/how-to-append-content-to-file-in-java/ googled that shit bro! – Savlon 2013-02-17 00:10:19

+0

GOOOOOOGLE IS GOOOD – Coffee 2013-02-17 00:11:25

回答

0

写入的代码是正确的。它将数据写入文件末尾并覆盖所有现有数据。

唯一可能问题是,如果现有文件的最后一行不以行结束终止,那么,你写在末尾附加数据的第一行会被追加到和以前的最后一行。如果这是你的担心,那么简单的解决办法是从追加一个空行开始;例如filewriter.write(newline);其中newline包含适当的行终止字符或字符。

(我还注意到你写的“代码”不包括显式行结束符,它是字符串的一部分吗?可能是你的问题吗?Writer.write(...)方法不会自动添加行结束符)