Java 即使文件存在,FileNotFoundException仍然存在
以上是我的代码(我还有一个错误图像: 如您所见,txt文件与StormAnalysis.java文件位于同一文件夹中。此外,如果我将文件路径更改为“weather.dat”(这是作为另一个任务/问题提供的),则代码可以工作Java 即使文件存在,FileNotFoundException仍然存在,java,java.util.scanner,filenotfoundexception,Java,Java.util.scanner,Filenotfoundexception,以上是我的代码(我还有一个错误图像: 如您所见,txt文件与StormAnalysis.java文件位于同一文件夹中。此外,如果我将文件路径更改为“weather.dat”(这是作为另一个任务/问题提供的),则代码可以工作 如果您有任何想法,我们将不胜感激!文件不在那里。如果文件在那里,它不会抛出异常:-) 可能的罪魁祸首是工作目录与预期的不同(即,当前工作目录不包含具有该名称的文件)。这可以通过使用文件的绝对路径并观察它是否正确加载来验证 或者,要查找当前目录,请执行以下操作: public
如果您有任何想法,我们将不胜感激!文件不在那里。如果文件在那里,它不会抛出异常:-) 可能的罪魁祸首是工作目录与预期的不同(即,当前工作目录不包含具有该名称的文件)。这可以通过使用文件的绝对路径并观察它是否正确加载来验证 或者,要查找当前目录,请执行以下操作:
public StormAnalysis(){
try {
fScanner = new Scanner(new File("tracks1949to2010_epa.txt"));
while(fScanner.hasNextLine()){
System.out.println(fScanner.nextLine());
}
} catch (FileNotFoundException e) {
System.out.println("File not found. Try placing the tracks1949to2010_epa.txt in the same folder as StormAnalysis.java");
e.printStackTrace();
}
}
愉快的编码。文件不在那里。如果是,它不会抛出异常:-) 可能的罪魁祸首是工作目录与预期的不同(即,当前工作目录不包含具有该名称的文件)。这可以通过使用文件的绝对路径并观察它是否正确加载来验证 或者,要查找当前目录,请执行以下操作:
public StormAnalysis(){
try {
fScanner = new Scanner(new File("tracks1949to2010_epa.txt"));
while(fScanner.hasNextLine()){
System.out.println(fScanner.nextLine());
}
} catch (FileNotFoundException e) {
System.out.println("File not found. Try placing the tracks1949to2010_epa.txt in the same folder as StormAnalysis.java");
e.printStackTrace();
}
}
快乐编码。在运行Java应用程序之前,Eclipse默认情况下(仅)将类文件复制到
bin\classes
目录中(除非该目录已更改为其他目录)。出于所有实际目的,此目录与存在输入文件的src
目录不同。您必须在Eclipse中配置项目的构建属性,以便将输入文件(或所有.txt类型的文件)复制到输出目录。这将使文件在类文件所在的同一目录中可用,从而可以读取该文件。Eclipse在运行Java应用程序之前,默认情况下(仅)将类文件复制(复制)到bin\classes
目录中(除非该目录已更改为其他目录)。出于所有实际目的,此目录与存在输入文件的src
目录不同。您必须在Eclipse中配置项目的构建属性,以便将输入文件(或所有.txt类型的文件)复制到输出目录。这将使该文件在类文件所在的同一目录中可用,从而可以读取该文件。Eclipse cwd是项目文件夹,比bin和src高一级
String cwd = new File(".").getAbsolutePath();
目录…eclipse工作区\文件IO
2018年5月30日晚上7:52
2018年5月30日07:48 PM 148 sample.txt
2018年5月30日07:46下午src
testFile=新文件(“Sample.txt”);
System.out.println(testFile.getAbsolutePath());
Eclipse cwd是项目文件夹,比bin和src高一级
String cwd = new File(".").getAbsolutePath();
目录…eclipse工作区\文件IO
2018年5月30日晚上7:52
2018年5月30日07:48 PM 148 sample.txt
2018年5月30日07:46下午src
testFile=新文件(“Sample.txt”);
System.out.println(testFile.getAbsolutePath());
@Arnab,由于您使用的是文件的相对路径
构造函数,因此计算的路径将始终相对于java/javaw可执行文件的工作目录。您需要修改对构造函数的调用,以包含文件所在的任何子目录。@Arnab,由于您使用的是文件
构造函数的相对路径,因此计算的路径将始终是相对于java/javaw可执行文件的工作目录的。您需要修改对构造函数的调用,以包含文件所在的任何子目录。