データベース ファイルを assets フォルダーに入れ、それを /data/data//database フォルダーにコピーしたいと考えています。この目的のために、次のコードを書きました。
public void copy()
{
try
{
String dest_path = "/data/data/"+getPackageName()+"/database/sultandatabase";
File f = new File(dest_path);
if( !f.exists() )
{
copy_database(getBaseContext().getAssets().open(db_name),new FileOutputStream(dest_path));
}
}
catch(Exception e)
{
Toast.makeText(this,"Sorry the file can not be opended", Toast.LENGTH_LONG).show();
}
}
public void copy_database(InputStream io ,OutputStream ou) throws Exception
{
byte[] buffer = new byte[1024] ;
int lenght;
while( ( lenght = io.read(buffer)) > 0 )
ou.write(buffer);
io.close();
ou.close();
}
copy() を呼び出すと、データベース ファイルはコピーされません。考えられる理由は何ですか?? どうすればこれを修正できますか?? 代わりにトーストが表示されます。それは私のプログラムが例外を取得することを意味します?? しかし、なぜ ??