Как сохранить файл во внутренней памяти в Android и получить к ним доступ с телефона Android

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

Что такое решение для нерутированных телефонов?

И как получить доступ к файлам внутреннего хранилища, указав его путь? какой будет путь?

Пожалуйста, помогите. Заранее спасибо и примеры будут высоко оценены.


person CodingLover    schedule 15.06.2017    source источник
comment
Я не знаю, что вы гуглили, но это легко сделать и найти. StackOverflow не является бесплатной службой кодирования   -  person Maxime Liege    schedule 15.06.2017
comment
вы хотите сохранить текстовый файл?   -  person Ganesh Gudghe    schedule 15.06.2017
comment
@GaneshPatil любой тип файла   -  person CodingLover    schedule 15.06.2017
comment
@MaximeLiege, не могли бы вы поделиться ссылкой, которая будет полезна и успешно сохранит файлы во внутренней памяти Android, и мы сможем получить к ним доступ с телефона Android, потому что вы сказали, что это легко ... может быть, я нахожу в неправильном направлении.   -  person CodingLover    schedule 15.06.2017
comment
@Zobi, я действительно не понимаю, как вы могли не найти это: developer.android.com/training/basics/data-storage/files.html   -  person Maxime Liege    schedule 15.06.2017


Ответы (2)


Вы можете сделать это с помощью потока FileOutput:

    String fileName = "file.txt";
    String content = "hello world";

    FileOutputStream outputStream = null;
    try {
       outputStream = openFileOutput(fileName, Context.MODE_PRIVATE);
       outputStream.write(content.getBytes());
       outputStream.close();
} catch (Exception e) {
    e.printStackTrace();
}

Примечание. Это метод записи только во внутреннюю память, MODE_PRIVATE означает, что другие приложения не могут получить доступ к вашему файлу. Вам также необходимо предоставить разрешение WRITE_EXTRENAL_STORAGE в манифесте xml.

Это сохранит файл в: data/data/app/files/file.txt

Чтобы получить список файлов, сохраненных в хранилище,

File dirFiles = mContext.getFilesDir();
for (String fname: dirFiles.list())
{
   Toast.makeText(mContext,fname,Toast.LENGTH_LONG).show();
}
person Shubham Singhal    schedule 15.06.2017
comment
Он хранит файл в data/data/‹com.mypackagename›/files.. Как мне их получить, когда я хочу показать их в списке? и работает ли это для телефонов, которые не рутированы? - person CodingLover; 15.06.2017
comment
чувак, ты серьезно, с этим примером кода ты можешь легко получить файл, StackOverflow не является бесплатной службой кодирования. - person Maxime Liege; 15.06.2017
comment
Проверьте редактирование, вы можете получить список сохраненных файлов, а затем показать их в виде списка. Ничто из этого не требует рутированного телефона - person Shubham Singhal; 15.06.2017
comment
@ShubhamSinghal Большое спасибо. Он успешно работает на эмуляторе Android, но не работает на телефоне Android... Любая идея? - person CodingLover; 15.06.2017
comment
На версиях Android выше 6.0 вам нужно запросить права на запись. Попробуйте это: stackoverflow.com/questions/33139754/ - person Shubham Singhal; 15.06.2017

Просто используйте приложение для просмотра файлов. Большинство телефонов поставляются с одним предустановленным. Однако, если у вас его нет, вы всегда можете скачать любой из них по вашему выбору. Я использую Проводник файлов ES.

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

Надеюсь это ответит на твой вопрос.

person Ivan Panchev    schedule 15.06.2017
comment
Я хочу создать свой собственный файловый менеджер... для этой цели я хочу сохранить файлы во внутренней памяти приложения, а затем извлечь, чтобы показать этот файл. - person CodingLover; 15.06.2017