2015-07-19 2 views
0

Я хочу, чтобы иметь возможность создать текстовый файл с данными внутри него, отправить этот файл, а затем избавиться от него на моем устройстве Android.Android создать текстовый файл на внутренней памяти, отправить его по электронной почте, а затем удалить файл

Ниже то, что я до сих пор, но он дает мне ошибку:

java.io.FileNotFoundException: /20150719_130219: open failed: EROFS (Read-only file system) 

Код:

BufferedWriter writer = null; 
    try { 
     //create a temporary file 
     String report = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); 
     File logFile = new File(report); 

     writer = new BufferedWriter(new FileWriter(logFile)); 
     for (Map.Entry entry : cbh.data.entrySet()) { 
      reportText.append(entry.getKey() + ", " + entry.getValue() + "\n"); 
      writer.write(entry.getKey() + ", " + entry.getValue() + "\n"); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      writer.close(); 
     } catch (Exception e) { 
     } 
    } 

ответ

1

Прежде всего, необходимо предоставить разрешения в вашем файле манифеста

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

Второй в вашем коде вы просто генерируете имя файла, но его полный путь не определен где он будет сохранен.

Environment.getExternalStorageDirectory() 

возвращает путь SDCard

Вы можете написать это

String report = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); 
String fileName = Environment.getExternalStorageDirectory()+ report+".txt"; 
File file = new File(fileName); 
+0

Как я могу создать файл с этим путем в виде? – Brejuro

+0

Вместо того, чтобы перемещаться во внешнее хранилище, вы могли остаться с wisch OP для использования внутреннего хранилища. Для внутреннего хранения используйте getFilesDir(). Вам не нужны какие-либо разрешения на это. – greenapps

 Смежные вопросы

  • Нет связанных вопросов^_^