我正在为从txt文件读入的类编写java程序。我将文本文件放在名为Assignment3pckg的包中,并使用如下扫描程序:
Scanner s = new Scanner( new File("./src/Assignment3pckg/studentdata.txt") );
但它一直在给我
java.io.FileNotFoundException: .\src\Assignment3pckg\studentdata.txt (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at Assignment3pckg.TestHW3.readStudentDataFromFile(TestHW3.java:25)
at Assignment3pckg.TestHW3.main(TestHW3.java:14)
非常感谢任何见解!
答案 0 :(得分:2)
您正在为文件使用 relative 路径(而不是绝对路径)。运行它时,相对于Java进程的当前工作目录解析相对路径。
此目录的位置取决于您运行Java的方式。 您可以通过打印找到它:
System.out.println(new File(".").getAbsolutePath());
您可以通过以下方式解决此问题:
C:\
或其他驱动器号开头)请注意,在Java中,您必须在String中转义反斜杠。所以C:\myproject\src\Assignment3pckg\studentdata.txt
变为"C:\\myproject\\src\\Assignment3pckg\\studentdata.txt"
作为Java字符串。或"C:/myproject/src/Assignment3pckg/studentdata.txt"
,因为Windows并不介意使用斜杠而不是反斜杠。