Как записать и считать данные в текстовик находящийся в памяти телефона? Android 5.1.1. Java

Вот что у меня тут:

public void AddClick (View v) {
        // проверяем доступность SD
        if (!Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            Toast.makeText(this,"SD-карта не доступна: " + Environment.getExternalStorageState(),Toast.LENGTH_LONG).show();
            //Log.d(LOG_TAG, "SD-карта не доступна: " + Environment.getExternalStorageState());
            //return;
        }
        // получаем путь к SD
        File sdPath = Environment.getExternalStorageDirectory();
        // добавляем свой каталог к пути
        sdPath = new File(sdPath.getAbsolutePath() + "/"+"mynewdir");
        // создаем каталог
        sdPath.mkdirs();
        // формируем объект File, который содержит путь к файлу
        File sdFile = new File(sdPath, "words.txt");
        try {
            // открываем поток для записи
            BufferedWriter bw = new BufferedWriter(new FileWriter(sdFile));
            // пишем данные
            bw.write("Содержимое файла на SD");
            // закрываем поток
            bw.close();
            Toast.makeText(this,"Файл записан на SD: " + sdFile.getAbsolutePath(),Toast.LENGTH_LONG).show();
            //Log.d(LOG_TAG, "Файл записан на SD: " + sdFile.getAbsolutePath());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Почему-то оно не работает. Помогите пожалуйста)


Ответы (1 шт):

Автор решения: Maks

Пропишите в Manifest.xml это разрешение:

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

для добавления данных в файл без перезаписи используйте это:

 public static void usingBufferedWritter() throws IOException {
String textToAppend = "Happy Learning !!";

BufferedWriter writer = new BufferedWriter(new FileWriter(FilePath, true));  
writer.newLine();   //Добавляем новую строку
writer.write(textToAppend);
writer.close();
}
→ Ссылка