public class DataBaseHelper extends sqliteOpenHelper { private Context mycontext; //private String DB_PATH = mycontext.getApplicationContext().getPackagename()+"/databases/"; private static String DB_name = "(datbasename).sqlite"; //the extension may be .sqlite or .db public sqliteDatabase myDataBase; /*private String DB_PATH = "/data/data/" + mycontext.getApplicationContext().getPackagename() + "/databases/";*/ public DataBaseHelper(Context context) throws IOException { super(context,DB_name,null,1); this.mycontext = context; boolean dbexist = checkdatabase(); if (dbexist) { //System.out.println("Database exists"); opendatabase(); } else { System.out.println("Database doesn't exist"); createdatabase(); } } public voID createdatabase() throws IOException { boolean dbexist = checkdatabase(); if (dbexist) { //System.out.println(" Database exists."); } else { this.getReadableDatabase(); try { copydatabase(); } catch (IOException e) { throw new Error("Error copying database"); } } } private boolean checkdatabase() { //sqliteDatabase checkdb = null; boolean checkdb = false; try { String myPath = DB_PATH + DB_name; file dbfile = new file(myPath); //checkdb = sqliteDatabase.openDatabase(myPath,sqliteDatabase.OPEN_READWRITE); checkdb = dbfile.exists(); } catch (sqliteException e) { System.out.println("Database doesn't exist"); } return checkdb; } private voID copydatabase() throws IOException { //Open your local db as the input stream inputStream myinput = mycontext.getAssets().open(DB_name); // Path to the just created empty db String outfilename = DB_PATH + DB_name; //Open the empty db as the output stream OutputStream myoutput = new fileOutputStream("/data/data/(packagename)/databases/(datbasename).sqlite"); // transfer byte to inputfile to outputfile byte[] buffer = new byte[1024]; int length; while ((length = myinput.read(buffer)) > 0) { myoutput.write(buffer,length); } //Close the streams myoutput.flush(); myoutput.close(); myinput.close(); } public voID opendatabase() throws sqlException { //Open the database String mypath = DB_PATH + DB_name; myDataBase = sqliteDatabase.openDatabase(mypath,sqliteDatabase.OPEN_READWRITE); } public synchronized voID close() { if (myDataBase != null) { myDataBase.close(); } super.close(); }总结
以上是内存溢出为你收集整理的将自己的SQLite数据库添加到Android应用程序全部内容,希望文章能够帮你解决将自己的SQLite数据库添加到Android应用程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)