Java中csv-file的文件路径

时间:2012-12-02 15:16:42

标签: java eclipse csv filereader

我在java中有一个项目,其中我读了一些csv-data。我必须输入特定的路径。现在我想将此项目发送给其他人,但他不应该更改路径信息。他应该能够运行项目,而无需更改代码中的任何内容。

我已经将csv-data放入我的源文件中,但在尝试使用此路径时出现异常。

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。

3 个答案:

答案 0 :(得分: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]));
    // ...
}

答案 1 :(得分:0)

将文件放在Java源文件夹的根目录中,然后确保它符合您的类或bin或目标文件夹(所有已编译的类都在哪里)。完成后,请按以下方式更改代码:

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

当您打包项目以进行分发时,请确保您的text.csv打包在同一文件夹中,即类文件夹的根目录。

答案 2 :(得分:-1)

根据项目的不同,只需让程序提示用户输入CSV文件的文件路径即可。如果是命令行程序,请使用System.in读取路径字符串并使用它代替"text.csv"

类似的东西:

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

我还建议首先确保文件实际存在于路径中,然后回放友好消息,而不是仅仅抛出原始异常。