我想复制一个数据库 从assets文件夹到我的手机存储卡。 程序运行时.. 该计划停止..
此消息显示在logCat中: 显示java.lang.NullPointerException ... 我很困惑.. 我不知道问题是什么 资产文件夹 有一个名为" home.db"的文件。 请帮帮我..
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File f1=new File(Environment.getExternalStorageDirectory(),"aaa");
f1.mkdir();
InputStream in = null;
try {
Toast.makeText(getBaseContext(), "error", Toast.LENGTH_LONG).show();
in = getBaseContext().getAssets().open("home");
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(getBaseContext(), "error", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
OutputStream ou = null;
try {
ou = new FileOutputStream(Environment.getExternalStorageDirectory()+"aaa"+ "/"+"home" );
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
CopyDB(in, ou);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void CopyDB(InputStream in, OutputStream ou) throws IOException
{
byte []buffer=new byte[1024];
int length;
while((length=in.read(buffer))>0)
{
try {
ou.write(buffer, 0, length);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
in.close();
ou.close();
}
}
答案 0 :(得分:0)
有一个名为“home.db”的文件
然而你正在做
in = getBaseContext().getAssets().open("home");
因为捕获了IOException,所以in
保持为null。
试试这个:
in = getBaseContext().getAssets().open("home.db");
答案 1 :(得分:-1)
我希望这对你有所帮助 另外不要忘记给予许可 - - accesssexternal storage