-1

作業ディレクトリに保存されているファイルを参照しようとしているので、オープンソースルーチン「opencsv」を使用してファイルを読み込んで解析できます。

次の行でFileNotFoundExceptionエラーが発生します。

CSVReader reader = new CSVReader(new FileReader("file.csv"), '\t');

次を使用して作業ディレクトリを確認しました。

String curDir = System.getProperty("user.dir");

これは値'\'を返すので、ファイル'file.csv'をプロジェクトのルートディレクトリに配置しました。私はEclipseを使用しています。問題のファイルは読み取り専用ではなく、「アーカイブ」に設定されており、「派生」というラベルは付いていません。

私は、おそらくかなり明らかに、Javaを初めて使用します。Googleでこの問題を検索すると、ファイルのアクセス許可を変更する必要があることがわかりますが、他に何かが足りないのではないかと思います。私は解決策がおそらく痛々しいほど明白であることを知っています:S

完全なコードは次のとおりです。

package mjd.listview.test;

import java.io.FileReader;
import java.util.List;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import au.com.bytecode.opencsv.CSVReader;

public class ListProjectActivity extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      CSVReader reader = new CSVReader(new FileReader("file.csv"), '\t');
        List<String[]> myEntries = reader.readAll();


      String[] terms = getResources().getStringArray(R.array.terms_array);
      setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, terms));

      ListView lv = getListView();
      lv.setTextFilterEnabled(true);

      lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

          // When clicked, show a toast with the TextView text
          Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
              Toast.LENGTH_SHORT).show();
        }
      });
    }

}
4

2 に答える 2

1

作業ディレクトリを見つけるために、を使用しないでくださいSystem.getProperty("user.directory")。を使用しnew File(".").getCanonicalPath()ます。これにより、現在の作業ディレクトリの正規の (絶対かつ一意の) パスが出力されます。

于 2012-05-31T00:51:15.133 に答える
0

プロジェクトのルートディレクトリが。と同等であると想定しないでください\。もしそうなら、私は驚きます。で報告された実際のパスは何FileNotFoundExceptionですか?これにより、Javaがファイルを探している場所がわかります。

私はEclipseではなくIntelliJを使用していますが、IntelliJには、JVMパラメーター、コマンドライン引数、および作業ディレクトリを設定する実行構成画面があります。Eclipseにも似たようなものがあると思います。設定内容を確認してください。次に、実際にファイルがある場所に変更するか、ファイルを設定されている場所に移動します。

于 2012-05-31T00:21:04.730 に答える