Eclipseで新しいプロジェクトが作成された後、デフォルトではAssets Directoryがあります。
java.io.InputStreamのインポートインポートAndroid.database.sqlitedatabase; )SetContentView(r.layout.main);ディレクトリはSQLiteデータベースを配置する準備ができている場所であり、Androidプログラムのデフォルトデータベースストレージディレクトリでもあります。 ;文字列db_name = "test.db";ファイルが存在する場合、データベースディレクトリが存在するかどうかを確認しますf = newファイル(db_path); // Assets Directoryでは、入力ストリームとして使用されます。 e [] buffer = new byte [1024]; ); os.close();} catch(ecprintstacktrace();} // data/com.test.db/database/通常、sqlitedabase = sqlited abase.openorcreatedabase(db_path + db_name、null)。 //中国の文字化けの問題を解決します[] = cursor.getBlob(0); println(strtest);} catch(unuptedendencodingexception e){// todo auto-generatd catch block e.printstacktrace();}} cursor.close();}}}}プログラムが開始されたら、データベースファイルが存在しない場合は、ISを作成するデータベースディレクトリをコピーし、ユーザーがこのプログラムをアンインストールすると、このディレクトリとデータベースがアンインストールされます。
別の例を見てみましょう。
通常のアプリケーションデータベースは、/データ/パッケージ名/DataBase/test.dbでスタンプされます。
したがって、すでに準備しているデータを許可するには、データベース自体をSDカードにコピーできる必要があります。
/mndcard/test/test.dbの下にあるリソースのリソースのリソースコピーを実装します。
コードは次のとおりです。
zcping.dbdefinition。 content.context; database.sqlite.sqlitedatabase.util.log {/**。 Environment .GetExterStorageDirectory()。コンストラクターは、コンテキストで紹介する必要がありますSDカードが存在しない場合、(!dir.mkdir(); );} try {//データベースがSDカードディレクトリに存在している場合、再作成する必要はありません。そうしないと、ファイルが作成されてデータベースファイルをコピーします(!(新しいファイル(データベースFileName)))。存在する{log.i); (「リリースアタバ」のFlow fileoutputStream(データベースファイル); : " + count); //データを全体の下のSDカードディレクトリに書き込みます((count = is.read(buffer))> 0){fos.write(buffer、0、count);} fos.flush( ; fos.close(); SDカードは、すべての挿入、削除、およびクエリ操作の言い訳です。 sqlitedatabase database = sqlitedDatabase.openorcreatedatabase(databasefilename、null)テスト後、それがすべての人に役立つことを願っています。