Ошибка необработанного исключения при попытке прочитать файл при использовании блока try / catch - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь создать программу, которая читает файл. 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();
        }
    }

}

Я получаю следующее сообщение об ошибке:

Исключение в потоке "main" java .lang.Error: Нерешенная проблема компиляции:
Необработанный тип исключения FileNotFoundException

в TextFile.createArray (H01_43 превращает файл java в текстовый файл. java: 47)
в H01_43.main (H01_43 превращает файл java в текстовый файл. java: 27)

Я пытался работать с преподавателем, который сказал, что мой код выглядит хорошо, но почему-то я продолжаю генерировать эту ошибку и поэтому не могу скомпилировать или протестировать мой код.

1 Ответ

0 голосов
/ 25 марта 2020

Я на самом деле боролся с этой проблемой с прошлого семестра и только что понял. Вот мой метод с изменениями:

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

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

        }
    }catch(FileNotFoundException exception){

    }

}

Первая проблема состояла в том, что newFile должен был быть новым файлом, но моя главная проблема заключалась в том, что мне нужно было наконец удалить и userFile.close (). Я не уверен, почему это так, и был бы признателен, если бы кто-нибудь понял меня.

...