0

私はいくつかの csv データを読み込む Java のプロジェクトを持っています。特定のパスを入力する必要があります。このプロジェクトを他の人に送りたいのですが、パス情報を変更する必要はありません。彼は、コードを何も変更せずにプロジェクトを実行できるはずです。

既に csv データをソース ファイルに入れていますが、このパスを使用しようとすると例外が発生します。

BufferedReader in = new BufferedReader(new FileReader("text.csv"));

Exception while reading csv file: java.io.FileNotFoundException: text.csv (No such file or directory)

IDE Eclipseとして使用しています。

4

3 に答える 3

1

ファイルをJavaソースフォルダーのルートに置き、クラスまたはbinまたはターゲットフォルダー(コンパイルされたすべてのクラスが移動する場所)に準拠していることを確認します。完了したら、コードを次のように変更します。

   InputStream inputStream = 
                  getClass().getClassLoader().getResourceAsStream("text.csv");
   BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream ));

配布用にプロジェクトをパッケージ化するときtext.csvは、同じフォルダー、つまりクラス フォルダーのルートにパッケージ化されていることを確認してください。

于 2012-12-02T15:30:36.867 に答える
0

次のように、プログラム引数を介して .CSV ファイルのパスを渡します。

Java MyCsvReader C:\Users\Me\file.csv


次に、メソッドで渡された引数にアクセスargsします。main

public static void main(String[] args) {
    if(args.length != 1) {
        System.out.println("Correct usage: MyCsvReader <CSV path>");
        System.exit(1);
        return;
    }

    BufferedReader in = new BufferedReader(new FileReader(args[0]));
    // ...
}
于 2012-12-02T15:23:53.960 に答える
-1

プロジェクトによっては、プログラムがユーザーに CSV ファイルへのファイル パスを要求するだけです。コマンド ライン プログラムの場合は、 を使用System.inしてパス文字列を読み取り、それを の代わりに使用します"text.csv"

何かのようなもの:

Scanner input = new Scanner( System.in );
String path = input.next();
BufferedReader in = new BufferedReader(new FileReader(path));

また、最初にファイルが実際にパスに存在することを確認し、生の例外をスローするのではなく、フレンドリーなメッセージをキックバックすることもお勧めします。

于 2012-12-02T15:21:16.837 に答える