以下是我正在为学校项目工作的代码。在我尝试阅读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");
}
}
}
答案 0 :(得分:1)
\\src\\finalproject\\animals.txt
表明该文件是嵌入式资源。
首先,您不应该在代码中引用src
,一旦构建程序并打包它就不会存在。
其次,您需要使用Class#getResource
或Class#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)
错误消息清楚地表明它找不到该文件。这意味着有两种可能性:
我首先创建一个File
对象,查看"."
(当前目录)并打印它,以查看它默认显示的目录。您可能需要对文件路径进行硬编码,具体取决于netbeans用于默认目录的内容。