2016-02-20 2 views
0

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

Я интересно, если я создаю файл с чем-то вроде:

FileOutputStream fileout = openFileOutput("text.txt", MODE_PRIVATE); 
OutputStreamWriter outputWriter = new OutputStreamWriter(fileout); 
outputWriter.write("write this string to file."); 
outputWriter.close(); 

Поскольку я не могу писать какие-либо файлы активы или любую необработанной директорию, где будет написана?

Какое место будет в этом файле? Где он будет находиться в файловой системе Android?

ответ

3

Поскольку я не могу писать файлы в активы или какой-либо необработанный каталог, где он будет написан?

openFileOutput() пишет internal storage.

Какое местоположение будет у этого объекта? Где он будет находиться в файловой системе Android?

Это может отличаться в зависимости от устройства и пользователя. Это будет тот же каталог, который возвращается по вызову getFilesDir().

+0

ли эти данные быть стойкими? Будут ли эти данные присутствовать так долго, как мое приложение будет установлено? Я предполагаю, что он будет удален, если пользователь удалит локальные данные или кеш ... –

+1

@AdrianIvasku: «Будут ли эти данные постоянными?» -- да. «Будут ли эти данные присутствовать так долго, как мое приложение будет установлено?» - да, или пока вы не измените или не удалите данные или пока пользователь не войдет в Настройки и не очистит данные для вашего приложения. Этот последний сценарий выглядит так, как будто пользователь удаляет и восстанавливает ваше приложение. – CommonsWare

+0

Спасибо, теперь все ясно! :) –

0

Вы можете получить путь к файлу, созданный с openFileOutput так: MainActivity.this.getFilesDir().getAbsolutePath()+"/text.txt" и вы можете прочитать его, используя объект FileInputStream FileInputStream fis = new FileInputStream(new File(MainActivity.this.getFilesDir().getAbsolutePath()+"/text.txt"));