我在从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
}
}
});
非常感谢您的帮助。