使用try / catch块尝试读取文件时出现未处理的异常错误

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

我正在尝试创建一个程序,该程序读取.java文件,然后将每一行放入ArrayList:

import java.util.ArrayList;
import java.util.Scanner;
import java.io.IOException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

class H01_43 {

    public static void main(String[] args) {
        Scanner userInput = new Scanner( System.in );
        System.out.println("Please enter the file name.");
        String fileName = userInput.nextLine();
        TextFile file1 = new TextFile();

        file1.createArray(fileName);

        userInput.close();
    }
}

class TextFile{

    public TextFile(){ 

    }

    public void createArray(String pFileName){
        String currentLine = "";
        ArrayList<String> mList = new ArrayList<>();    

        try{   
            Scanner userFile = new Scanner(newFile(pFileName));        
            while(userFile.hasNextLine()){
                currentLine = userFile.nextLine();
                mList.add(currentLine);

            }
        }catch(FileNotFoundException exception){
            e.printStackTrace();

        }finally{
            userFile.close();
        }
    }

}

我不断收到以下错误消息:线程“主”中的异常java.lang.Error:未解决的编译问题:未处理的异常类型FileNotFoundException

at TextFile.createArray(H01_43 make a java file into txt file.java:47)
at H01_43.main(H01_43 make a java file into txt file.java:27)

曾与一位导师合作,他说我的代码看起来不错,但是以某种方式我继续产生此错误,因此无法编译或测试我的代码。

java exception filenotfoundexception
1个回答
0
投票

有两个问题:您用错误的名称引用了该异常,并引用了范围之外的userFile

Scanner userFile;
try{   
    userFile = new Scanner(newFile(pFileName));        
    while(userFile.hasNextLine()){
        currentLine = userFile.nextLine();
        mList.add(currentLine);
    }
}catch(FileNotFoundException exception){
    exception.printStackTrace();
}finally{
    userFile.close();
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.