添加if语句后出现java.io.FileNotFoundException错误

时间:2019-01-13 20:18:49

标签: java java.util.scanner filenotfoundexception

我正在为课堂开发一个Hangman代码,并且我认为它具有三种不同级别的难度,其中包括20种可能的单词/短语。我将三个文本文档包含在与程序相同的文件夹中,但是由于某种原因,我一直在获取

java.io.FileNotFoundException: 
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.util.Scanner.<init>(Scanner.java:611)
at FinalProject.showfile(FinalProject.java:137)
at FinalProject.game(FinalProject.java:48)
at FinalProject.main(FinalProject.java:35)

我不知道该怎么做才能更正此问题。我是编码新手,对此没有很好的了解。 我已经包含了代码的一部分,该部分允许用户选择他们想要的级别,该代码可以从每个文件中找到一个随机单词。如果需要更多,我可以全力以赴。

我已经看过许多关于同一问题的其他主题,但是我的问题似乎与所有主题不同。在我将if语句与所有其他级别一起添加之前,我简单地拥有:

fileName = "lv1text.txt";

,效果很好。但是,既然我包括了if语句,就会出现此错误。

我尝试使用确切的目录,但是仍然会出现相同的错误。

    private static int levelSelect (int levelSelection) throws IOException
{
    levelSelection = 0;
    System.out.println("What level of difficulty would you like to play?");
    System.out.println("Enter 1 for Easy\nEnter 2 for Medium\nEnter 3 for Hard");
    levelSelection = getInt("",1,3);
    return levelSelection;
}

private static String showfile(String fileName) throws IOException
{
    levelSelect(levelSelection);
    if (levelSelection == 1)
    {
        fileName = "lv1list.txt";
    }
    else if (levelSelection == 2)
    {
        fileName = "lv2list.txt";
    }
    else if (levelSelection == 3)
    {
        fileName = "lv3list.txt";
    } 
    Scanner inFile = new Scanner (new File (fileName));
    int i = 0; 
    String[] impWord = new String[20];
    while (inFile.hasNextLine())
    {
        impWord[i] = inFile.nextLine();
        i++;
    }
    inFile.close();
    int rNum = ((int)Math.floor((impWord.length-1)*Math.random()-1));
    fWord = impWord[rNum];
    return fWord;
}

0 个答案:

没有答案