2014-12-11 32 views
2

我承认我仍然在学习,并认为自己是编程方面的新手(充其量)。我无法在Android中追加文件。每当我保存时,它都会重写该文件,并且无法理解如何保留已存在的文件并只添加新行。希望得到一些清晰/建议。这是我如何保存到文件(每次保存时都会重写文件)。Android保存到file.txt追加

public void saveText(View view){ 

    try { 
     //open file for writing 
     OutputStreamWriter out = new OutputStreamWriter(openFileOutput("save.txt", MODE_PRIVATE)); 

     //write information to file 
     EditText text = (EditText)findViewById(R.id.editText1); 
     String text2 = text.getText().toString(); 
     out.write(text2); 
     out.write('\n'); 

     //close file 

     out.close(); 
     Toast.makeText(this,"Text Saved",Toast.LENGTH_LONG).show(); 

    } catch (java.io.IOException e) { 
     //if caught 
     Toast.makeText(this, "Text Could not be added",Toast.LENGTH_LONG).show(); 
    } 
} 

回答

4

更改这以复加,

OutputStreamWriter out = new OutputStreamWriter(openFileOutput("save.txt", MODE_PRIVATE)); 

到,

OutputStreamWriter out = new OutputStreamWriter(openFileOutput("save.txt", Context.MODE_APPEND)); 

这将将新内容追加到已存在的文件中。

我希望它有帮助!

+0

是的。所以,MODE_APPEND是我的问题。非常感谢你 – 2014-12-11 05:22:36

3

使用此方法,通过文件名和值的文件

public void writeFile(String mValue) { 

    try { 
     String filename = Environment.getExternalStorageDirectory() 
       .getAbsolutePath() + mFileName; 
     FileWriter fw = new FileWriter("ENTER_YOUR_FILENAME", true); 
     fw.write(mValue + "\n\n"); 
     fw.close(); 
    } catch (IOException ioe) { 
    } 

} 
+0

我还在为此苦苦挣扎,所以原谅我。如何在不通过函数传递文件名和值的情况下做到这一点?任何时候我改变参数(视图视图)它崩溃。 – 2014-12-11 04:18:31