Задать вопрос
BitNeBolt
@BitNeBolt

Как записать файл в хранилище телефона?

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

Файл, создается, но без содержимого.

Вызов намерения:
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);

                intent.addCategory(Intent.CATEGORY_OPENABLE);
                intent.setType("text/plain");
                intent.putExtra(Intent.EXTRA_TITLE, "test.txt");

                startActivityForResult(intent, CHOOSE_DIR_CODE);


Обработка:
switch (requestCode)
        {
            case CHOOSE_DIR_CODE:
                if (resultCode == RESULT_OK && data != null)
                {
                    try
                    {
                        FileOutputStream fos = new FileOutputStream("test.txt");//getContentResolver().openOutputStream(data.getData());

                        fos.write("Test".getBytes());

                        fos.close();

                        Toast.makeText(this, "Saved", Toast.LENGTH_LONG).show();
                    } catch (FileNotFoundException e)
                    {
                        e.printStackTrace();

                        Toast.makeText(this, "WRONG 1", Toast.LENGTH_LONG).show();
                    } catch (IOException e)
                    {
                        Toast.makeText(this, "WRONG 2", Toast.LENGTH_LONG).show();

                        e.printStackTrace();
                    }
                }

                break;
        }


Но вылетает FileNotFoundException. В документации про него написано следующее:
If the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason then a FileNotFoundException is thrown.


Как можно определить конкретный из предложенных случаев?
  • Вопрос задан
  • 198 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@WaterSmith
Android-разработчик. Java, Kotlin
Чтобы не писать здесь, обо всех возможных причинах. Просто оставлю вам ссылку на подробный гайд по работе с файлами:
forum.startandroid.ru/viewtopic.php?f=26&t=860
Ответ написан
BitNeBolt
@BitNeBolt Автор вопроса
Использовать Content Provider
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы