程序启动后能访问那个sqllite数据库文件而不用新建数据库?

解决方案 »

  1.   

    Sqlite数据库本身就嵌入在Android系统中,你不需要去对数据库本身操作什么;你只需要知道如何在数据库中操作即可,比如建立库,建立表,增删改查等等。至于你说的每次启动都去新建数据库,只要你代码写正确了,这中问题是不会出现的。如何操作数据库,网上有很多教材,你可以找一找,我在这就不给你找了。不知道我说的是不是你要的,希望可以对你有用
      

  2.   

    这个容易实现吧,只要把db文件放在assets文件或res文件夹raw下,第一次运行时将这个文件拷贝到
    "/data/data/YOUR_PACKAGE/databases/"下就可以了。
      

  3.   

    只要拷一次就可以了,判断db文件存不存在,不存在考一次之后就可以用了private static String DB_PATH = "/data/data/YOUR_PACKAGE/databases/";
    private static String DB_NAME = "DBName";private void copyDataBase() throws IOException{
         InputStream myInput = myContext.getAssets().open(DB_NAME);
         String outFileName = DB_PATH + DB_NAME;
          OutputStream myOutput = new FileOutputStream(outFileName);
         byte[] buffer = new byte[1024];
         int length;
         while ((length = myInput.read(buffer))>0){
         myOutput.write(buffer, 0, length);
         }
         myOutput.flush();
         myOutput.close();
         myInput.close();
         }
      

  4.   


    多谢!那我执行databasehelper.getReadableDatabase()或getWritableDatabase()时就能自动打开那个数据库吗? 它怎么知道是哪个数据库文件? 如果目录下有好几个不同名的db文件,它打开哪一个?
      

  5.   

    对啊打开时用路径参数选择哪个文件,像这样
    SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);
     
      

  6.   

    谢谢!用路径参数的话,我在程序里就可以打开多个数据库了,而用getReadableDatabase(),无论执行多少次都只能打开那一个缺省的数据库,是吧?
      

  7.   


    你可以打开不同的数据库,你打开一个数据库databasehelper或openDatabase会返回一个对象操作那个对象就可以了