Сохранить входящее текстовое сообщение в файл во внешнем хранилище в Android

Я пытаюсь сохранить каждое входящее SMS в текстовом файле во внешней памяти со следующим кодом. Для маленьких сообщений или я работаю, но когда сообщение становится длинным и имеет много пробелов, этот код просто сохраняет последние несколько строк в текстовом файле. Я не могу понять проблему. Есть мысли?

public void onReceive(Context context, Intent intent) {

    final Bundle bundle = intent.getExtras();

    try {
        if (bundle != null) {
            final Object[] pdusObj = (Object[]) bundle.get("pdus");
            for (int i = 0; i < pdusObj.length; i++) {
                SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                String phoneNumber = currentMessage.getDisplayOriginatingAddress();
                String senderNum = phoneNumber;
                String message = currentMessage.getDisplayMessageBody().toString();

                //file name will be current time for uniquess

                Calendar c = Calendar.getInstance();
                SimpleDateFormat sdf = new SimpleDateFormat("dd_MMMM_yyyy__HH_mm_ss__a");
                String fileName = sdf.format(c.getTime());

                File myFile = new File("/sdcard//SaveSMS/"+getName(senderNum,context)+"//"+ fileName +    ".txt");
                myFile.createNewFile();
                FileOutputStream fOut = new FileOutputStream(myFile);
                OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
                // Append Body SMS to Stream
                myOutWriter.append(message);
                myOutWriter.close();
                fOut.close();

                Toast.makeText(context,"This SMS will save in SaveSMS\\"+senderNum, 1).show();                      

            } 
          } 

    } catch (Exception e) {
        Log.e("SmsReceiver", "Exception smsReceiver" +e);

    }
}    

Пример ошибки: если кто-то текст

1 1 1 2 3

4

5 6 6 7 8 9

7 6 5

этот код сохранит только

6 5

1 ответ

Это перезаписывает данные в существующем файле? попробуйте заменить

new FileOutputStream(myFile);

с

new FileOutputStream(myFile, true);

Другие вопросы по тегам