我是.NET开发人员多年(10年),我第一次在空闲时间编写android java。我正在编程的应用程序是一个用于输入某些课程参与者数据的应用程序。课程教师输入一些课程编号(这是文件名的一部分),每个参与者输入他的姓名和出生日期。所以我有两个活动。一个给讲师,一个给参与者。
第一个活动在下载文件夹中创建文件,第二个活动在 CSV 文件的末尾附加参与者数据。到目前为止,对于C#.net开发人员来说没有问题,因为Java语法就像C#语法。该应用程序在一周内完成编程。
但是现在在测试期间会出现以下问题:生成的csv文件可以在android文件资源管理器中在android上查看,并且可以在android中打开内容。但是,如果我将智能手机连接到台式电脑,则 csv 文件不会显示在 Windows 文件资源管理器中。
如果我重新启动智能手机,该文件仅显示在 Windows 文件资源管理器中。似乎代码没有释放资源,尽管我使用 close 方法关闭文件并结束应用程序。
我在以下代码中犯了什么错误:
public boolean CreateFile() {
boolean OK = false;
File file = new File(_FileName);
if (!file.exists()) {
try {
if (file.createNewFile())
{
_StatusText.setText( "Status:Leere Kurs-Teilnehmer-Datei angelegt:n" + _FileName + ".csv");
OK = true;
}
else
_StatusText.setText("Status:Datei nicht angelegt");
} catch (Exception e) {
_StatusText.setText("Status:Fehler:" + e.toString());
}
finally {
return OK;
}
}
else
{
_StatusText.setText("Status:Bereits Vorhandene Kursliste wird verwendet");
return true;
}
}
这是在csv文件末尾添加行的代码:
public static void AppendDataToCSV(String Filename, String Nachname, String Vorname, String Datum) throws IOException {
FileWriter out = null;
try {
StringBuilder textline = new StringBuilder();
textline.append(Nachname)
.append(";")
.append(Vorname)
.append(";")
.append(Datum)
.append("n");
out = new FileWriter(Filename, true);
out.write(textline.toString());
}
finally {
if (out != null)
out.close();
}
}
这是完成应用程序的代码:
private void ButtonEndeClick(){
_StatusText.setText("Ende");
finish();
System.exit(0);
}
请让我知道如何确保在应用程序关闭后释放所有恢复。
非常感谢您的帮助:-)
这不是锁定文件,而是Android处理新文件条目的方式。好消息是,看起来其他人以前遇到过这个问题,而似乎有人已经解决了它。
因此,这个Stackoverflow问题和答案可能会对您有所帮助。
维尔·格吕克·达米特。