Привет мне нужно скачать файл с URL-адреса и сохранить во внутреннем хранилище, поэтому процесс загрузки выполняется в асинхронной задаче.Сначала я попытался записать строку в файл с помощью асинхронной задачи, но выдает ошибку: не удалось создать файл oat.Тот же код работает без задачи, поэтому мой вопрос заключается в том, что я должен загрузить файл во внешнее хранилище и после перемещения во внутреннее?
private void writeInFile() {
FileOutputStream output = null;
String text = "TEXT";
try {
output = openFileOutput("nameFile.abc",Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
output.write(text.getBytes());
output.flush();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Но если я вызываю эту функцию в doInBackground класса, расширяющего AsyncTask, я получаюошибка.
LicenzaTask mt = new LicenzaTask(this);
mt.execute();
public class LicenzaTask extends AsyncTask<Void, Void, Void> {
private Context mContext;
public LicenzaTask(MainActivity mainActivity) {
mContext = mainActivity;
}
@Override
protected Void doInBackground(Void... voids) {
modifyFile();
return null;
}
private void modifyFile() {
File file = new File(mContext.getFilesDir() + "nome.abc");
String text = "text";
BufferedWriter output = null;
try {
output = new BufferedWriter(new FileWriter(file));
output.write(text);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (output != null) {
try {
output.close();
} catch (IOException e) {
}
}
}
}