Java:如何使用Scanner类读取资源文件夹中的文本文件

时间:2017-02-18 00:31:55

标签: java java.util.scanner

enter image description here

import java.util.*;
import java.io.File;
import java.io.IOException;

public class Test {

    public static void main(String[] args) {
        File source;
        Scanner input;
        String name;
        String id;
        Pokemon x;
        ArrayList<Pokemon> pokelist = null;

        try {
            source = new File("/resources/gen1pokemon.txt");
            input = new Scanner(source);
            input.useDelimiter(",");
            while(input.hasNext()) {
                id = input.next();
                name = input.next();
                x = new Pokemon(id,name);
                pokelist.add(x);

                input.nextLine();
            }
        } catch(Exception e) {
            System.out.println(e);
        }
        System.out.println(pokelist.get(0).getName());
    }
}

我的资源文件夹中有一个文本文件,我试图使用Scanner类读取它,但是我收到错误。 java.io.FileNotFoundException:\ resources \ gen1pokemon.txt(系统找不到指定的路径)线程“main”中的异常

任何可能导致这种情况的想法?我环顾四周,尝试将“class.getResource(”file name“)”引用,但在声明文件时我也遇到了错误。

2 个答案:

答案 0 :(得分:2)

应用程序资源在部署之前将成为嵌入式资源,因此立即开始访问它们是明智之举。必须通过URL而不是文件访问。有关如何形成网址,请参阅info. page for embedded resource

要使用扫描仪中的网址get an input stream from it,请使用new Scanner(InputStream)

答案 1 :(得分:0)

您是否尝试过/src/resources/gen1Pokemon.txt

路径可能有点棘手,根据项目的结构尝试不同的版本。