2012-06-27 4 views
0

У меня есть таблица базы данных, моя цель - прочитать в каждом из значений из таблицы данных, а затем записать их в текстовый файл, который будет отправлен по электронной почте. Как мне это сделать?Как читать данные из таблицы базы данных SQLite?

public void FileWrite() 
{ 
    Cursor remindersCursor = mDbHelper.fetchAllReminders(); 
    startManagingCursor(remindersCursor); 

    try 
    { // catches IOException below 
     String[] from = new String[]{RemindersDbAdapter.KEY_TITLE}; 
     final String TESTSTRING = new String(RemindersDbAdapter.KEY_TITLE + " "); 
     File sdCard = Environment.getExternalStorageDirectory(); 
     File myFile = new File(sdCard, "test"); 
     FileWriter writer = new FileWriter(myFile); 
     writer.append(TESTSTRING); 
     writer.flush(); 
     writer.close(); 


     Toast.makeText(TaskReminderActivity.this, "Program Successfully went through FileWrite!", Toast.LENGTH_LONG).show(); 
    } catch(Exception e) 
    { 
      Toast.makeText(TaskReminderActivity.this, "Had Problems with file!", Toast.LENGTH_LONG).show(); 
      Log.e("FileWrite", "Had Problems with file!", e); 
    } 
} 
+0

http://marakana.com/forums/android/examples/55.html –

+0

@ Сэм хорошо я новичок в этом, так что я не совсем уверен, с чего начать. Я бы подумал, что создаю цикл для чтения во всех значениях базы данных, но я не уверен, как попытаться выполнить код, стоящий за такой логикой ха-ха. Я опубликую редактирование моего файла, читающего до сих пор, если вы не возражаете, давая мне небольшую обратную связь. – user1457104

+1

Невероятно, если вы предоставите более подробную информацию в своем вопросе, вы с большей вероятностью получите жизнеспособный ответ. Итак, это работает? У вас есть файл с именем «test» с соответствующим контентом на вашей SD-карте? – Sam

ответ

1

Первое чтение из вас sqllite базы данных:

Cursor cursor = db.rawQuery("SELECT * FROM " +TBL_NAME+" " ,null); 
startManagingCursor(cursor); 
while(cursor.moveToNext()){ 

        stringBuffer.append(cursor.getString(1)).append(";"); 

      } 
...... 

Следующая запись на карту:

try { 
     File myFile = new File("/sdcard/file.txt"); 
     myFile.createNewFile(); 
     FileOutputStream fOut = new FileOutputStream(myFile); 
     OutputStreamWriter myOutWriter = 
     new OutputStreamWriter(fOut); 
     myOutWriter.append(stringBuffer.toString()); 
     myOutWriter.close(); 
     fOut.close(); 
     Toast.makeText(getBaseContext(), 
       "Done writing SD 'mysdfile.txt'", 
       Toast.LENGTH_SHORT).show(); 
    } catch (Exception e) { 
     Toast.makeText(getBaseContext(), e.getMessage(), 
       Toast.LENGTH_SHORT).show(); 
    } 

....

Убедитесь, что в файле манифеста установлено разрешение.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
Смежные вопросы