找不到文件异常 - Java

时间:2014-12-02 00:02:20

标签: java eclipse file-io

我正在编写一个带有并行数组的代码,当我读入数据并尝试显示它时,会出现此错误。教我实验室的GA没有看到我的代码有问题,并说我应该在这里试试。这是我的代码,错误就在它之后。我正在使用eclipse。

import java.util.Scanner; 
import java.io.File;
import java.io.FileNotFoundException;
public class parallelArrays {
    public static void main(String[] args) throws FileNotFoundException {
        File cityPopulation = new File("cityPopulationData.txt");
        Scanner fileReader = new Scanner(cityPopulation);
        fileReader.useDelimiter("[\t|\n]+");
        String[] cities = new String[400];
        int[] pop2010 = new int[400];
        int[] pop2013 = new int[400];
        double[] area = new double[400];
        int count = getData(fileReader, cities, pop2010, pop2013, area);
        displayArrays(cities, pop2010, pop2013, area, count);
        largestCity(pop2010, count);
    }

    public static int getData(Scanner inf, String[] c, int[] pop10, int[] pop13, double[] a) {
        int count = 0;
        inf.next();
        inf.next();
        inf.next();
        inf.next();
        while(inf.hasNext()) {
            c[count] = inf.next();
            pop10[count] = inf.nextInt();
            pop13[count] = inf.nextInt();
            a[count] = inf.nextDouble();
            count++;
        }
        return count;
    }

    public static void displayArrays(String[] c, int[] pop10, int[] pop13, double[] a, int count) {
        for(int i = 0; i < count; i++){
            System.out.printf("%s \t %d \t %d \t %f", c[i], pop10[i], pop13[i], a[i]);
        }
    }

    public static int largestCity(int[] pop10, int count) {
        int lCindex = 0;
        for(int i = 1; i < count; i++) {
            if(pop10[i] > pop10[lCindex])
                lCindex = i;
        }
        return lCindex;
    }

    // public static int findGrowth(int[] pop10, int[] pop13, int count,  ) {
    // 
    // }

    public static int highestDensity(int[] pop10, double[] area, int count) {
        int hDindex = 0;
        for( int i = 1; i < count; i++) {
            if ((pop10[i]/area[i]) > (pop10[hDindex]/area[hDindex]))
                hDindex = i;
        }
        return hDindex;
    }
}

例外:

Exception in thread "main" java.io.FileNotFoundException: cityPopulationData.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.util.Scanner.<init>(Unknown Source)
    at parallelArrays.main(parallelArrays.java:7)

1 个答案:

答案 0 :(得分:0)

好的例外是自我解释&#34; java.io.FileNotFoundException&#34;
==&gt;文件cityPopulation =新文件(&#34; cityPopulationData.txt&#34;);

因为您正在使用eclipse,请尝试提供文件的绝对路径,如c:/data/filex.txt等。它将起作用。之后,在项目树中创建一个资源文件夹并将文件放在那里。使用ClassLoader.getresouceAsStream加载文件。当您想要对文件进行相对访问时,可以使用以下方法。您可以在线获取更多有关此方法的信息。

希望这会有所帮助