原始代码及其将数据保存到SD卡的工作原理
// 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();
. . .
然后我更改了代码以附加新值,因为它应该根据我的需要:
osw.append(dataToSave);
osw.flush();
osw.close();
问题是:它覆盖文本文件而不是附加。我错过了什么?感谢您的帮助
构造函数 FileOutputStream( File file ) 始终覆盖 file。如果要附加到文件,则必须使用更通用的构造函数 FileOutputStream( File file, boolean append )。如果将参数“append”设置为 true,则文件不会被覆盖。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)