为什么你想把数据库文件直接放入数据/数据文件夹中?为了测试目的?对我没有意义,我会选择以下选项之一:
- 从服务器加载数据并将其插入到数据库中。
- 将数据库文件放入资产文件夹,然后复制字节以创建应用程序数据库(您不能移动数据库文件)。
实例(如需要):
首先,你需要把你的数据库文件的资产/数据库文件夹内。如果你的数据库大于1MB,你需要分割它。 (即database1,database2,database3 ...)
你可能有一个类来完成所有的数据库任务,在这里我有一个名为DatabaseHelper的类(扩展SQLiteOpenHelper)。不要忘记设置你的数据库路径和名称。
private static String DB_PATH = "/data/data/com.example/databases/";
private static String DB_NAME = "mydb.sqlite";
如果你不得不拆分你的数据库,也要把这些块声明为一个变量。
private static String[] sFiles = {'database1','database2','database3'};
您可以使用getReadableDatabase()方法快速创建/打开数据库。
然后,创建一个这样的实现:
private void copyDatabase() throws IOException {
// Path to the empty database.
String outFilename = DB_PATH + DB_NAME;
// Open the empty database as the output stream.
OutputStream outputDatabase = new FileOutputStream(outFilename);
// Transfer bytes from the input file to the output file.
byte[] buffer = new byte[1024];
for (int i = 0; i < sFiles.length; ++i) {
// Open the local database as the input stream.
InputStream is = mContext.getAssets().open("database/" + sFiles[i]);
int length;
while ((length = is.read(buffer)) > 0) {
outputDatabase.write(buffer, 0, length);
}
// Closing stream.
is.close();
}
// Closing the streams.
outputDatabase.flush();
outputDatabase.close();
// Closing database.
close();
}
你是从哪里复制的?确切的路径请。 – st0le 2012-01-02 11:58:45
是位置data/data/your.package.name /数据库? – 2012-01-02 11:59:26
是数据库路径是数据/数据/包/数据库 – Vamshi 2012-01-02 12:03:01