Android 读取Raw文件下的db文件
1.清单文件添加sdcard的读写文件
2.java代码
package com.example.testdb;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String dbPath = "/data"
+ Environment.getDataDirectory().getAbsolutePath()
+ "/com.example.testdb/smartdot.db";// 要把你Raw文件的db保存到sdcard中
InputStream is = null;
FileOutputStream fos = null;
try {
if (!(new File(dbPath).exists())) {
is = this.getResources().openRawResource(R.raw.smartdot); // 你Raw的那个db索引
fos = new FileOutputStream(dbPath);
byte[] buffer = new byte[1024];
int count = 0;
while ((count = is.read(buffer)) > 0) {
fos.write(buffer, 0, count);
}
}
} catch (Exception e) {
Log.e("DB_ERROR", "数据文件读写失败");
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
Log.e("DB_ERROR", "数据文件读写失败");
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
Log.e("DB_ERROR", "数据文件读写失败");
}
}
}
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbPath, null);// 这里可以执行你的操作了
Log.d("SUCCES", db.toString());
}
}