当前位置: 代码迷 >> Android >> 相干android /data/data/ [
  详细解决方案

相干android /data/data/ [

热度:58   发布时间:2016-05-01 10:42:58.0
有关android /data/data/ [
把asset下的数据库xx.db复制到/data/data/package_name/xx.db下,无法复制啊 !!什么问题 ?? 应该不用root吧? 这个目录本身是属于本应用程序的!理论上来说本应用程序是可以访问!
private SQLiteDatabase openDataBase(String path) { 
Log.e("SQLite exist:", "" + new File(path).exists() + "::" + path); 
// TODO Auto-generated method stub 
try { 
File file = new File(path); 
if (!file.exists()) {// 判断数据库是否存在,若不存在执行导入操作,否则直接打开数据库 
// InputStream ins = context.getResources().openRawResource( 
// R.raw.ty_city); 
file.createNewFile(); 
InputStream ins = context.getAssets().open("Chinacity.db"); 
FileOutputStream fos = new FileOutputStream(path); 
byte[] buffer = new byte[BUFFER_SIZE]; 
int count = 0; 
while ((count = ins.read(buffer)) > 0) { 
fos.write(buffer, 0, count); 
Log.e("buffer...", "" + count); 

fos.close(); 
ins.close(); 

SQLiteDatabase sqLiteDatabase = context.openOrCreateDatabase( 
DB_NAME, 0, null); 
return sqLiteDatabase; 
} catch (FileNotFoundException ffe) { 
ffe.printStackTrace(); 
Log.e("DataBaseFile:", "file can't find"); 
} catch (IOException ioe) { 
// TODO: handle exception 
Log.e("IOException", ioe.getMessage()); 
ioe.printStackTrace(); 

return null; 
}
报错

java.io.IOException: open failed: ENOENT (No such file or directory)//file.createNewFile(); 
Android 数据库

------解决方案--------------------
你那个path 或许方法不对

abstract File  getFileStreamPath(String name)
Returns the absolute path on the filesystem where a file created with openFileOutput(String, int) is stored.
http://developer.android.com/reference/android/content/Context.html
------解决方案--------------------
是/data/data/package_name/databases/xx.db

另外,看看权限开了吧
------解决方案--------------------
引用:
把asset下的数据库xx.db复制到/data/data/package_name/xx.db下,无法复制啊 !!什么问题 ?? 应该不用root吧? 这个目录本身是属于本应用程序的!理论上来说本应用程序是可以访问!
private SQLiteDatabase openDataBase(String path) { 
Log.e("SQLite exist:", "" + new File……



import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import com.tarena.android.db.DatabaseHelper;
import com.tarena.android.entity.Airport;

public class AirportReadActivity extends Activity{
  相关解决方案