全部!我在扫描仪/传递文本文件作为方法的参数时遇到问题。如果我在 main 中创建一个 Scanner,我就可以做所有事情。
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class App {
public static void main(String[] args){
File file = new File([FILEPATH]);
Scanner inputFile = new Scanner(file);
...
但是,当我尝试将文本文件传递给方法并在那里创建扫描仪时,我收到 FileNotFoundException
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class App {
public static void main(String[] args){
File file = new File([FILEPATH]);
method(file);
}
public static String method(File file){
Scanner inputFile = new Scanner(file); //This is where I get the error :(
...
问题提示特意说参数必须是文件,所以我不能改成String参数来代替传递文件路径。
我使用 .getPath() 来确保我的方法中文件的文件路径与 main 中文件的文件路径匹配,而且确实如此。我不确定需要修复什么。非常感谢任何帮助!
编辑;添加带有我的完整代码和每个版本的输出的屏幕截图,以便人们可以验证我的更改。
您仔细阅读错误信息了吗?
它没有说“找不到文件” - 它说:“未解决的编译问题:未处理的异常类型 FileNotFoundException”。
这是因为
new Scanner(file)
被声明为抛出 FileNotFoundException
并且您的 method()
必须处理该异常或声明它可能抛出 FileNotFoundException
(通过将其声明为 method(File file) throws FileNotFoundException {...}