Java使用netbeans

时间:2017-10-17 21:20:38

标签: java file input netbeans

以下是我正在为学校项目工作的代码。在我尝试阅读animal.txt文件之前,它确实没问题。有人可以告诉我我做错了什么吗?我将编译错误作为图像附加。提前谢谢。

[输入错误图片1

   package finalproject;

      //enabling java programs
      import java.util.Scanner;
      import javax.swing.JOptionPane;

import java.io.FileInputStream; import java.io.IOException;

public class Monitoring {

public static void choseAnimal() throws IOException{
    FileInputStream file = null;
    Scanner inputFile = null;
    System.out.println("Here is your list of animals");
     file = new FileInputStream("\\src\\finalproject\\animals.txt");
     inputFile = new Scanner(file);

    while(inputFile.hasNext())
    {
        String line = inputFile.nextLine();
        System.out.println(line);
    }
}

 public static void choseHabit(){
System.out.println("Here is your list of habits");

}


public static void main(String[] args) throws IOException{
    String mainOption = ""; //user import for choosing animal, habit or exit
    String exitSwitch = "n"; // variable to allow exit of system
    Scanner scnr = new Scanner(System.in); // setup to allow user imput




    System.out.println("Welcome to the Zoo");
    System.out.println("What would you like to monitor?");
    System.out.println("An animal, habit or exit the system?");
    mainOption = scnr.next();
    System.out.println("you chose " + mainOption);
    if (mainOption.equals("exit")){
    exitSwitch = "y";
    System.out.println(exitSwitch);
    }
    if (exitSwitch.equals( "n")){
        System.out.println("Great, let's get started");
    }
        if (mainOption.equals("animal")){
            choseAnimal();

        }
        if (mainOption.equals("habit")) {
            choseHabit();

        }

    else {
        System.out.println("Good bye");
    }

}

}

2 个答案:

答案 0 :(得分:1)

\\src\\finalproject\\animals.txt表明该文件是嵌入式资源。

首先,您不应该在代码中引用src,一旦构建程序并打包它就不会存在。

其次,您需要使用Class#getResourceClass#getResourceAsStream才能阅读。

更像是......

//file = new FileInputStream("\\src\\finalproject\\animals.txt");
//inputFile = new Scanner(file);

try (Scanner inputFile = new Scanner(Monitoring.class.getResourceAsStream("/finalproject/animals.txt"), StandardCharsets.UTF_8.name()) {
    //...
} catch (IOException exp) {
    exp.printStackTrace();
}

例如

现在,假设animals.txt包中存在finalproject文件

答案 1 :(得分:0)

错误消息清楚地表明它找不到该文件。这意味着有两种可能性:

  1. 您想要的目录中不存在文件
  2. 您想要的目录不是您拥有的目录。
  3. 我首先创建一个File对象,查看"."(当前目录)并打印它,以查看它默认显示的目录。您可能需要对文件路径进行硬编码,具体取决于netbeans用于默认目录的内容。