我在SD卡中有文本文件,其中第一行包含表的列名,其余行包含列的值.每行用/ n分隔,每个项用|分隔.通过使用这个我必须在我的数据库中创建一个表.
首先,您必须创建数据库和存储来自文本文件的数据的表,如下所示,
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
/**
* @param context Application Context
*/
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
/* Called when the database is created for the first time.
* @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase)
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE DB_TABLE(_id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT);");
}
/* Called when the database needs to be upgraded.
* @see android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int)
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w("DatabaseHelper", "Upgrading database, which will destroy all old data");
onCreate(db);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你必须从SD卡读取文本文件并将记录插入到上面创建的表中,
定义两个变量,
DatabaseHelper databaseHelper;
SQLiteDatabase db;
Run Code Online (Sandbox Code Playgroud)
在onCreate方法中启动它们,
databaseHelper = new DatabaseHelper(context);
db = databaseHelper.getWritableDatabase();
Run Code Online (Sandbox Code Playgroud)
定义将数据保存到数据库的方法
void saveDataToDB()
{
File sdcard = Environment.getExternalStorageDirectory();
//Get the text file
File file = new File(sdcard,"file.txt");
//Read text from file
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
insertRecordToDB(columnName, columnValue);
}
}
catch (IOException e) {
//You'll need to add proper error handling here
}
}
void insertRecordToDB(columnName, columnValue)
{
ContentValues values = new ContentValues();
values.put(columnName, columnaValue);
db.insert(DB_TABLE, null, values);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3776 次 |
| 最近记录: |