2011-12-06 12 views
2

私はsdカードにテキストファイルを持っています。その最初の行には表の列名が含まれ、残りの行には列の値が入っています。各行は/ nで区切られ、各項目は|で区切られます。これを使用して、私は自分のデータベースにテーブルを作成する必要があります。アンドロイドのsdカードに保存されたテキストファイルからsqliteデータベースまたはテーブルを作成する方法は?

答えて

5

まず、あなたが

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); 
    } 
} 
を以下のようなテキストファイルからデータを格納するデータベースとテーブルを作成する必要があり、あなたはSDカードからテキストファイルを読み込み、にレコードを挿入する必要があります上記で作成した表、

は、2つの変数を定義し、
DatabaseHelper databaseHelper; 
    SQLiteDatabase db; 

は、のonCreateメソッドでそれらを開始

databaseHelper = new DatabaseHelper(context); 
db = databaseHelper.getWritableDatabase(); 

COLUMNNAMEとcolumnValueは正確に上記のコードでは何ですか?データベース

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); 
} 
+0

にデータを保存するためのメソッドを定義しますか。 –

関連する問題