从外部导入sqliteDatabase

public class DbManager {


private final static int BUFFER_SIZE = 400000;
public static final String DB_NAME = "weather_rushfunsion.db"; // 保存的数据库文件名
public static final String PACKAGE_NAME = "com.weather.test";
public static final String DB_PATH = "/data"
+ Environment.getDataDirectory().getAbsolutePath() + "/"
+ PACKAGE_NAME;
static InputStream in;
// 在手机里存放数据库的位置
private static SQLiteDatabase db;
private static DbManager manager;


// private static InputStream getDbInputStreamFromNet(String strUrl) {
// URL url;
// if (in == null) {
// try {
// url = new URL(strUrl);
// in = url.openStream();
// } catch (MalformedURLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
//
// return in;
// }


private DbManager() {
}


public static DbManager getInstants(Context ctx){
if(manager==null){
manager = new DbManager();
}
in = ctx.getClassLoader().getResourceAsStream("weather_rushfunsion.db");
System.out.println("in--->"+in);
return manager;

}

public SQLiteDatabase openDatabase() {
db = openDatabase(DB_PATH + "/" + DB_NAME);
return db;
}


public  SQLiteDatabase openDatabase(String dbfile) {
try {
if (!(new File(dbfile).exists())) {
// 判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库
System.out.println("inputstream-->" + in);
// 欲导入的数据库
FileOutputStream fos = new FileOutputStream(dbfile);
byte[] buffer = new byte[BUFFER_SIZE];
int count = 0;
while ((count = in.read(buffer)) > 0) {
fos.write(buffer, 0, count);
}
fos.close();
in.close();
}
db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
return db;
} catch (Exception e) {
e.printStackTrace();
}
return SQLiteDatabase.openOrCreateDatabase(dbfile, null);
}


// do something else here<BR>
public void closeDatabase() {
db.close();
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值