У меня возникла проблема с правильным закрытием операции записи в файл из EditText.Поскольку метод close () помещен в блок finally, в первый раз я получил сообщение об ошибке «невозможно разрешить ...».Тогда я заставил заявление стать частью сферы.К сожалению, теперь моя операция записи работает только для первой введенной строки, остальные помечены как «ноль».Где я должен поместить оператор close (), чтобы не выдавать ошибку, и записать все введенные строки?Вот мой код:
ajoutarticles = (EditText)findViewById(R.id.edtajouter);
btnajouter = (Button)this.findViewById(R.id.btnajouter);
btnajouter.setOnClickListener(new View.OnClickListener() {
@Override
//File path = new File(this.getFilesDir().getPath());
public void onClick(View v) {
PrintWriter printWriter = null;
try {
choix = ajoutarticles.getText().toString();
File output2 = new File(getApplicationContext().getExternalFilesDir(null), "shopping.txt");
FileWriter fileWriter = new FileWriter(output2.getAbsolutePath(), true);
BufferedWriter buffer = new BufferedWriter(fileWriter);
printWriter = new PrintWriter(buffer);
printWriter.println(choix);
//Toast.makeText(ListeCourses.this, String.valueOf(i), Toast.LENGTH_LONG).show();
Toast.makeText(ListeCourses.this, String.valueOf(choix), Toast.LENGTH_LONG).show();
Log.d("MainActivity", "Ligne du fichier = [" + choix + "]");
Log.d("MainActivity", "Fichier = [" + output2 + "]");
} catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
} finally {
printWriter.close(); // Error
}
}
});
Большое спасибо за вашу помощь.