private static class MyDbOpenHelper extends SQLiteOpenHelper{
private Context c;
public MyDbOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
c = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("Sandy", "onCreate database");
//execute when user invoke getReadDatabase/getWriteDatabase
//当用户第一次程序的时候,我们会调用这里,创建我们的表。
db.execSQL("CREATE TABLE " + RAW_DATA_TABLE + " ("
+ RawData._ID + " INTEGER PRIMARY KEY,"
+ RawData.COLUMN_ISSUE + " TEXT,"
+ RawData.COLUMN_NUMBER_ONE + " TEXT,"
+ RawData.COLUMN_NUMBER_TWO + " TEXT , "
+ RawData.COLUMN_NUMBER_THREE + " TEXT,"
+ RawData.COLUMN_NUMBER_FOUR + " TEXT,"
+ RawData.COLUMN_NUMBER_FIVE + " TEXT,"
+ RawData.COLUMN_NUMBER_SIX + " TEXT,"
+ RawData.COLUMN_NUMBER_SEVEN + " TEXT"
+ ");");
ContentValues cv = new ContentValues();
//声明解析文件的文件流对象
InputStream in = null;
BufferedReader reader = null;
try {
//通过AssetManager读取文件
in = c.getResources().getAssets().open("qixingcai-data.txt", AssetManager.ACCESS_BUFFER);
//构造BufferedReader对象,以便逐行读取
reader = new BufferedReader(new InputStreamReader(in));
String line ;
//逐行读取文件内容,读取一行,就把这一行数据进行拆分,然后保存进数据库
while((line = reader.readLine()) != null){
cv.clear();
//根据分割符"-"和" "进行数据拆分,然后把得到的数据放到ContentValues对象中
String[] issueAndNumber = line.split("-");
String[] numbers = issueAndNumber[1].split(" ");
cv.put(RawData.COLUMN_ISSUE, issueAndNumber[0]);
cv.put(RawData.COLUMN_NUMBER_ONE, numbers[0]);
cv.put(RawData.COLUMN_NUMBER_TWO, numbers[1]);
cv.put(RawData.COLUMN_NUMBER_THREE, numbers[2]);
cv.put(RawData.COLUMN_NUMBER_FOUR, numbers[3]);
cv.put(RawData.COLUMN_NUMBER_FIVE, numbers[4]);
cv.put(RawData.COLUMN_NUMBER_SIX, numbers[5]);
cv.put(RawData.COLUMN_NUMBER_SEVEN, numbers[6]);
//插入数据库
db.insert(RAW_DATA_TABLE, "_id", cv);
Log.d("Sandy", "issueAndNumber[0]" + issueAndNumber[0]
+ "one: " + numbers[0] + " all: " + issueAndNumber[1]);
}
} catch (IOException e) {
Log.d("Sandy", "", e);
}finally{
if (in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}