/** * author : lipan * filename : TestDb.java * create_time : 2014年8月23日 下午5:33:06 */ package com.sets.speedtest.db; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Calendar; import java.util.Locale; import android.annotation.SuppressLint; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Environment; import android.test.AndroidTestCase; import android.util.Log; import com.sets.speedtest.R; /** * @author : lipan * @create_time : 2014年8月23日 下午5:33:06 * @desc : db测试类 * @update_person: * @update_time : * @update_desc : * */ @SuppressLint("SdCardPath") public class TestDb extends AndroidTestCase { public void testLoadDb() throws Exception { // Context context = getContext(); // // 打开静态数据库文件的输入流 // InputStream is = context.getResources().openRawResource(R.raw.init); // // 通过Context类来打开目标数据库文件的输出流,这样可以避免将路径写死。 // FileOutputStream os = // context.openFileOutput("init.db",Context.MODE_PRIVATE); // byte[] buffer = new byte[1024]; // int count = 0; // // 将静态数据库文件拷贝到目的地 // while ((count = is.read(buffer)) > 0) { // os.write(buffer, 0, count); // } // is.close(); // os.close(); // 静态资源数据库 // SQLiteDatabase baseDb = // SQLiteDatabase.openDatabase("/data/data/com.sets.speedtest/files/init.db", // null, // SQLiteDatabase.OPEN_READONLY); // Cursor rawQuery = // baseDb.rawQuery("select count(*) from campus",null); // rawQuery.moveToFirst(); // System.out.println(rawQuery.getInt(0)); openDatabase(); // Cursor query = database.query("campus", null, null, null, null, null, null); // if (query.moveToNext()) // { // System.out.println(query.getInt(0)); // } // database.execSQL("CREATE TABLE android_metadata (locale TEXT DEFAULT 'zh_CN')"); Cursor cursor = database.query("CAMPUS", new String[]{"count(*)"} , null, null, null, null, null); cursor.moveToFirst(); long count = cursor.getLong(0); } private final int BUFFER_SIZE = 400000; public static final String DB_NAME = "init.db"; // 保存的数据库文件名 public static final String PACKAGE_NAME = "com.sets.speedtest";// 包名 public static final String DB_PATH = "/data" + Environment.getDataDirectory().getAbsolutePath() + "/" + PACKAGE_NAME +"/files"; // 在手机里存放数据库的位置 private SQLiteDatabase database; public void openDatabase() { this.database = this.openDatabase(DB_PATH + "/" + DB_NAME); } private SQLiteDatabase openDatabase(String dbfile) { try { if (!(new File(dbfile).exists())) {// 判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库 Context context = getContext(); // 打开静态数据库文件的输入流 InputStream is = context.getResources().openRawResource(R.raw.init); // 通过Context类来打开目标数据库文件的输出流,这样可以避免将路径写死。 FileOutputStream os = context.openFileOutput("init.db", Context.MODE_PRIVATE); byte[] buffer = new byte[1024]; int count = 0; // 将静态数据库文件拷贝到目的地 while ((count = is.read(buffer)) > 0) { os.write(buffer, 0, count); } is.close(); os.close(); } SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null); return db; } catch (FileNotFoundException e) { // Log.e("Database", "File not found"); e.printStackTrace(); } catch (Exception e) { // Log.e("Database", "IO exception"); e.printStackTrace(); } return null; } public void testCampusDao() { // CampusDao dao = new CampusDao(DBOpenManager.getInstance().getBaseDb()); // SparseArray<Campus> campusList = dao.getCampusList("BJ"); // System.out.println(campusList.size()); } public void testDate() { Calendar calendar = Calendar.getInstance(Locale.CHINA); Log.i("now date",calendar.getTime().toString()); Log.i("now date",calendar.getTimeInMillis()+""); } }