0

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

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

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();
    }
}

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

4

1 回答 1

0

可能是当您创建文件时,您要么没有在您认为的位置创建它,要么您试图在实际上没有目录的地方创建它。你可以尝试使用

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

这会告诉您您创建文件是否失败

于 2013-08-13T22:55:12.263 回答