Я хочу хранить файлы .docx, сгенерированные и модифицированные с помощью приложения Android, во внутреннюю память Android-телефонов (все это касается той же модели телефона, если это помогает). У меня есть загрузка шаблона (находится в приложении) и изменение рабочих полей, но я заблокирован о том, как сохранить файлы.Как получить доступ к внутреннему хранилищу в Android
Я использую docx4j, который имеет метод для сохранения:
private void writeDocxToStream(WordprocessingMLPackage template,
String target) throws IOException, Docx4JException {
File f = new File(target);
template.save(f);
}
Я пробовал другие, более «ручные» методы, но у меня всегда есть та же самая проблема:
, что должно быть на входе для целевого каталога?
Кажется, это легко сделать для внешнего хранения, но в отношении внутреннего хранения это что-то еще.
Когда я просто пытаюсь вывести строку в test.txt затем получить строку в его обратно, с классической BufferedReader
, InputStreamReader
, FileInputStream
способом делать, я не могу получить эту информацию вообще.
Информация на эту тему очень рассеяна, я прошел после полудня, прочитав тысячи способов достижения хранилища, но ни одна из них не соответствует моей проблеме.
У меня есть <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
в моем манифесте, чтобы быть уверенным, но это ничего не меняет.
Более того, возможно, это связано с проблемой, я не могу получить доступ к файлам (с устройства или с компьютера) на своем тестовом устройстве (Samsung Galaxy 5S, который может запускать приложение), я, кажется, вполне все папки, но не любые файлы в них, кроме нескольких файлов xml и txt ... (Тем не менее, я все равно ничего не получаю при выполнении: write в EditText - сохранить в файле - сохранить файл в .txt - извлечь String - просмотреть строку в textView).
Это очень важно, поскольку я должен извлечь файлы .docx для дальнейшего использования после их создания.
Спасибо за ваши ответы и дайте мне знать, если я могу предоставить более подробную информацию, я знаю, что моя проблема неясно.
'target' должен быть путь во внутренней памяти вашего приложения. Каков ваш код для вызова 'writeDocxToStream'? – alijandro
'writeDocxToStream (wordMLPackage, (context.getDir (" testfile ", Context.MODE_WORLD_READABLE)). GetPath(). ToString() +"/test.docx ");' мой код –