Я пытаюсь создать приложение Android, которое читает текстовый файл чисел из папки активов, затем копирует эти числа в массив, удваивает значение каждого номера и записывает новый набор в два раза номера в каталог внешних файлов приложений. Мое приложение падает после ввода двух имен файлов. Я считаю, что большая часть моей ошибки связана с тем, как я пытался писать во внешний файл. Я прочитал много разных сообщений, и я не могу точно понять, как правильно писать.Приложение для чтения и записи Android
public void readArray() {
EditText editText1;
EditText editText2;
TextView tv;
tv = (TextView) findViewById(R.id.text_answer);
editText1 = (EditText) findViewById(R.id.input_file);
editText2 = (EditText) findViewById(R.id.output_file);
int numGrades = 0;
int[] gradeList = new int[20];
String fileLoc = (String) (editText1.getText().toString());
try {
File inFile = new File("file:///android_asset/" + fileLoc);
Scanner fsc = new Scanner(inFile);
while (fsc.hasNext()) {
gradeList[numGrades] = fsc.nextInt();
numGrades++;
}
} catch (FileNotFoundException e) {
tv.append("error: file not found");
}
for (int i = 0; i < gradeList.length; i++) {
gradeList[i] = gradeList[i] * 2;
}
String fileLoc2 = (String) (editText2.getText().toString());
FileWriter fw;
//new code
File root = Environment.getExternalStorageDirectory();
File file = new File(root, fileLoc2);
try {
if (root.canWrite()) {
fw = new FileWriter(file);
//PrintWriter pw = new PrintWriter(fw);
BufferedWriter out = new BufferedWriter(fw);
for (int i = 0; i < gradeList.length; i++) {
out.write(gradeList[i]);
}
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
также жаль спрашивать nooblike вопрос заранее
Вы можете делиться журналами который появляется на консоли при сбое приложения? Похоже, в этой строке есть проблемы: 'File inFile = new File (" file: /// android_asset/"+ fileLoc);' – Peshal
В стороне, вы не упомянули об этом в своем вопросе, но убедитесь, что у вас есть [WRITE_EXTERNAL_STORAGE ] (http://developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE) в вашем манифесте. – Karl