Reputation: 5256
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();
}
}
The above is my code (and I also have an image of the error : http://folk.uio.no/arnabkd/test/images/error-code-task.jpg
As you can see, the txt file is in the same folder as the StormAnalysis.java file. In addition, the code works if I change the file path to "weather.dat" (which was given as another task/problem).
Any ideas will be appreciated!
Upvotes: 1
Views: 5647
Reputation: 1
The Eclipse cwd is the Project folder, one level above bin and src.
Directory of ...eclipse-workspace\File IO
05/30/2018 07:52 PM <DIR> bin
05/30/2018 07:48 PM 148 sample.txt
05/30/2018 07:46 PM <DIR> src
testFile = new File("Sample.txt");
System.out.println(testFile.getAbsolutePath());
Upvotes: 0
Reputation: 76719
Eclipse copies (only) the class files into a bin\classes
directory by default (unless this has been changed to another directory), before running a Java application. For all practical purposes, this directory is different from the src
directory where the input file is present. You will have to configure the project's build properties in Eclipse to copy the input file (or all files of type .txt) to the output directory as well. This will make the file available in the same directory where the class file is, enabling the file to be read.
Upvotes: 2
Reputation:
The file isn't there. If it was it wouldn't throw the exception :-)
The likely culprit is the working directory differs from what is expected (that is, the current working directory does not contain a file with that name). This can be trivially verified with using the file's absolute path and observing that it is loaded correctly.
Alternatively, to find the current directory:
String cwd = new File(".").getAbsolutePath();
Happy coding.
Upvotes: 11