文件关闭失败

时间:2018-09-19 15:00:55

标签: java file

我在从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
            }
        }

    });

非常感谢您的帮助。

0 个答案:

没有答案