0

別のアクティビティで作成/変更されたテキスト ファイルから情報を取得するスピナーを使用しています。このメソッドを使用するアクティビティを開くと、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();
    }
}

エラーは理解できますが、ファイルが作成された場合にエラーが発生する理由がわからないため、そもそもファイルが作成されていない可能性があります。このエラーを修正する方法、および将来それを回避する方法についての考え/基本的に何が間違っていますか。

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 に答える