首页 > 解决方案 > 导出jar项目后如何正确引用文本文件

问题描述

制作一个小刽子手游戏只是为了好玩和更多地尝试 IO。原始解决方案如代码所示,可在 IDE 中使用(使用 Netbeans)。问题是当我将它导出为 Jar 文件时,它找不到我正在引用的文件。导出后如何正确读取外部文件?

public HangmanGame(){
    File file = new File("src\\hangman\\words");
    try{
    Scanner fileScan = new Scanner(file);

    int number = (int)(Math.random()*260);
    for(double i=0; i<260; i++){
        if(i == number){
            word = fileScan.nextLine();
            fileScan.close();
            break;
        }else{
            fileScan.nextLine();
        }

    }
    }catch(FileNotFoundException e){
        System.out.println(e.getMessage());

    }
    System.out.println(word);


}

标签: javajario

解决方案


将您的文件放在项目“资源”中 - 它会被打包到一个 jar 中。然后您需要从 jar 内部而不是文件系统中读取它 -如果您需要在 IDE 中直接从 jar 运行项目的后备方法,请参阅此线程以供参考和此答案。

tl;dr:你的代码应该看起来更像这样

    try {
        InputStream in = getClass().getResourceAsStream("words");
        Scanner fileScan = new Scanner(in);
        ...

推荐阅读