为什么这里使用openFileOutput总是导致程序崩溃

这是代码,按下返回键后没有回到MainActivity,程序直接崩溃了

 public class SecondActivity extends Activity implements OnClickListener{

    private EditText edit;
    private Button button2;

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_layout);
        edit = (EditText) findViewById(R.id.edit);
        button2 = (Button) findViewById(R.id.button2);
        button2.setOnClickListener(this);
    }

    public void onClick(View v) {
        switch(v.getId()) {
        case R.id.button2:
            finish();
        }
    }

    protected void onDestroy() {
        super.onDestroy();
        String inputText = edit.getText().toString();
        save(inputText);
    }

    public void save(String inputText) {
        FileOutputStream out = null;
        BufferedWriter writer = null;
        try {
            out = openFileOutput("data", Context.MODE_PRIVATE);
            writer.write(inputText);
        } catch(IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if(writer != null) {
                    writer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

![图片说明](https://img-ask.csdn.net/upload/201504/02/1427985873_228533.png)图片说明

 try {
            out = openFileOutput("data", Context.MODE_PRIVATE);
            out.write(inputText);//这里应该是out,writer没有初始化
        } catch(IOException e) {

你这设计到好几个问题。
1>writer只是初始化的时候赋值为null,导致空指针异常。
2>如果想使用writer,就需要对out进行修饰。
3>out属于OutputStream,想要使用BufferedWriter进行修饰,就需要将out装化为writer。

修正部分如下
inputText是文字,假设使用UTF-8编码
try{
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out, "utf-8"));
}

不是openFileOutput的问题,是你的writer根本就是个null啊,null有write方法么,你new 一个writer就行