尝试将txt文件作为Java中方法的参数传递时出现FileNotFoundException

问题描述 投票:0回答:1

全部!我在扫描仪/传递文本文件作为方法的参数时遇到问题。如果我在 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 中文件的文件路径匹配,而且确实如此。我不确定需要修复什么。非常感谢任何帮助!

编辑;添加带有我的完整代码和每个版本的输出的屏幕截图,以便人们可以验证我的更改。

Main: Working Version Method: Non-working Version

java java.util.scanner java-io
1个回答
0
投票

您仔细阅读错误信息了吗?

它没有说“找不到文件” - 它说:“未解决的编译问题:未处理的异常类型 FileNotFoundException”。

这是因为

new Scanner(file)
被声明为抛出
FileNotFoundException
并且您的
method()
必须处理该异常或声明它可能抛出
FileNotFoundException
(通过将其声明为
method(File file) throws FileNotFoundException {...}

© www.soinside.com 2019 - 2024. All rights reserved.