原来的code和它的工作将数据保存到SD卡
Original code and its working saving the data to the SD Card
// Writing data to internal storage
btnSaveData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isSDCardWritable()) {
String dataToSave = etData.getText().toString();
try {
// SD Card Storage
File sdCard = Environment.getExternalStorageDirectory();
File directory = new File(sdCard.getAbsolutePath()+"/MyFiles");
directory.mkdirs();
File file = new File(directory, "text.txt");
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
// write the string to the file
osw.write(dataToSave);
osw.flush();
osw.close();
. . .
然后,我改变了code追加一个新的值应根据我所需要的是:
And then I changed the code to append a new values as it should be according to what I need:
osw.append(dataToSave);
osw.flush();
osw.close();
但问题是:它覆盖的文本文件,而不是追加。我错过了什么?感谢您的帮助
Problem is: It overwrites the text file instead of appending. What did I miss? Thanks for helping
构造的FileOutputStream(档案文件)始终覆盖文件。如果你要附加到文件,你必须使用更多通用的构造函数的FileOutputStream(文件档案,布尔追加)。如果设置参数'追加'到真正的文件不会被覆盖。
Constructor FileOutputStream( File file ) always overwrites file. If you want to append to file you have to use more generic constructor FileOutputStream( File file, boolean append ). If you set parameter 'append' to true file is not overwritten.