android添加到微调器会导致由于filenotfoundexception导致崩溃

时间:2013-08-13 22:48:46

标签: android file spinner

我正在使用一个微调器,它从文本文件中获取信息,该文件在另一个活动中创建/修改。当我打开使用此方法的活动时,它会崩溃,说明filenotfound的异常。虽然我已经运行了创建文件的活动,但之前已将数据添加到文件中。我在我的Android设备和模拟器上都试过了。

以下是将数据加载到微调器中的方法:

public void loadOpp() throws FileNotFoundException {            
    BufferedReader inputReader = new BufferedReader(new InputStreamReader(
            openFileInput("Opponent")));
    String inputString;
    List<String> final2 = null;               
    try {
        while ((inputString = inputReader.readLine()) != null) {
            final2.add(inputString);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    Spinner spinner= (Spinner) findViewById(R.id.spinner1);
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, final2);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(dataAdapter);        
}

以下是在其他活动中创建文本文件的方法:

public void onSubmitClick(View view) {
    EditText mEdit;
    String filename = "Opponent";
    mEdit   = (EditText)findViewById(R.id.oppName);
    String string = mEdit.getText().toString();
    FileOutputStream outputStream;

    try {
      outputStream = openFileOutput(filename, Context.MODE_APPEND);
      outputStream.write(string.getBytes());
      outputStream.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
}

我理解错误,但我不明白为什么如果文件被创建会导致错误,所以可能首先没有创建文件。任何关于如何解决这个错误的想法,以及如何在将来避免它/基本上我做错了什么。

1 个答案:

答案 0 :(得分:0)

当您创建文件时,您可能无法在您认为自己的位置创建文件,或者您尝试在没有目录的情况下创建文件。你可以尝试使用

if(f.createNewFile()){
    System.out.println("FILE CREATED "+f.getAbsolutePath());
}else{
        System.out.println("FILE NOT CREATED "+f.getAbsolutePath());
                     }

这会告诉您,您创建的文件失败了