经过几周不编程,我决定完成我的申请。上次我无法进行文件写入和读取,现在我想这样做。我也许可以使用数据库,但这似乎容易得多。我找到了这个页面,从那里复制粘贴了代码。至少现在我可以在手机上检查文件的内容(我暂时不使用任何虚拟SD卡,但它肯定会加速测试)。问题在于此代码,每次我写入文件,关闭我的应用程序,然后重新打开它并再次写入文件时,文件的内容都会重置。
File root = Environment.getExternalStorageDirectory();
File file = new File(root, "tomato50.txt");
if (assignArr.size() > 0) {
try {
if (root.canWrite()) {
FileWriter filewriter = new FileWriter(file);
BufferedWriter out = new BufferedWriter(filewriter);
for (int i = 0; i < assignArr.size(); i++) {
out.write(assignArr.get(i) + "n");
Toast.makeText(MainActivity.this,
"out: " + assignArr.get(i), Toast.LENGTH_LONG)
.show();
}
out.close();
}
} catch (IOException e) {
Log.e("TAG", "Could not write file " + e.getMessage());
}
}
例如
- 我把一个项目放到分配到达。
- 该项将写入文件。
- 我关闭应用程序,AssignArr 为空,因为它是一个变量。
- 我打开应用程序。
- 我把一个项目放到分配到达。
- 我关闭应用程序,AssignArr 为空,因为它是一个变量。
- 我打开仅显示最后一项的文件。
使用 FileWriter filewriter = new FileWriter(file,true);
将数据追加到现有文件。
您可以使用类BufferWriter
的函数append
。