I want to remove the throws FileNotFoundException
from the method head and put it into it.
JavaScript
x
public static String[] read(String file) throws FileNotFoundException {
But then I can’t access in
(the scanner) anymore! How to handle that?
JavaScript
public static String[] read(String file) {
try {
Scanner in = new Scanner(new FileReader(file));
}
catch (Exception e) {
}
// ...
in.close();
// ...
}
Advertisement
Answer
The variable in
is out of scope outside the try
block. You can either do this:
JavaScript
public static String[] read(String file) {
Scanner in = null;
try {
in = new Scanner(new FileReader(file));
}
catch (Exception e) {
}
finally() {
in.close();
}
// ...
}
Or better yet, try with resources
JavaScript
public static String[] read(String file) {
try (Scanner in = new Scanner(new FileReader(file))){
String line = in.nextLine();
// whatever comes next
}
catch (Exception e) {
}
// right here, the scanner object will be already closed
return ;
}