Я хочу хранить файлы .docx, сгенерированные и измененные с помощью приложения 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... (Тем не менее, я по-прежнему ничего не получаю при выполнении: запись в EditText - сохранение в файле - сохранение файла в .txt - получение строки - просмотр строки в textView).
Это очень важно, так как мне нужно получить файлы .docx для дальнейшего использования после их создания.
Спасибо за ваши ответы и дайте мне знать, если я могу предоставить дополнительную информацию, я знаю, что моя проблема довольно неясна.
target
должен быть путем во внутренней памяти вашего приложения. Какой у вас код для вызоваwriteDocxToStream
? - person alijandro   schedule 06.08.2015writeDocxToStream(wordMLPackage, (context.getDir("testfile", Context.MODE_WORLD_READABLE)).getPath().toString()+"/test.docx");
мой код - person Stone Edge   schedule 07.08.2015