我已经从this question复制了该方法并修改了一下,以便在我的项目中使用。我注意到,当我调用方法createNewFile()时,应用程序忽略了我的方法的其余部分。我该如何解决这个问题?
public void exportDatabase(){
try{
File dbFile=getDatabasePath("Glukozko.db");
File exportDir = new File(Environment.getExternalStorageDirectory(), "");
if (!exportDir.exists()){
exportDir.mkdirs();
}
File file = new File(exportDir, "meritve.csv");
file.createNewFile(); //from this point on, the method is ignored
PrintWriter csvWrite = new PrintWriter(new FileWriter(file));
Cursor meritve=db.vrniMeritve();
if(meritve.getCount()==0){
Toast.makeText(MainActivity.this,"No data availible",Toast.LENGTH_SHORT).show();
}else{
while (meritve.moveToNext()){
String vrstica=meritve.getString(1)+";"+meritve.getString(2)+";"+meritve.getString(3)+";"+meritve.getString(4)+";"+meritve.getString(5)+";"+meritve.getString(6);
System.out.println(vrstica);
}
}
}catch (Exception e){
}
}
我找到了解决方案。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我不得不把它放在manifestset文件中!
答案 0 :(得分:2)
file.createNewFile(); //from this point on, the method is ignored
它抛出异常!
然后你继续压缩异常......抓住它并在catch
块中什么都不做。
如果您打印异常的堆栈跟踪而不是压缩它,您可能会看到导致异常的重要线索。一旦你知道是什么导致它,你就可以弄清楚如何解决它。
此外,文件未创建
烨。方法调用失败。