Я пытаюсь написать метод, который выводит информацию в массив. следующие: Создайте второй метод для WordPath: makeWordArray, который принимает имя файла String в качестве входных данных, и возвращает массив или ArrayList, который хранит объекты WordData.Нужна помощь в исправлении попытки, ошибка catch
Во-первых, метод должен открыть файл с помощью нового FileReader (файла), вызвать метод numLines, чтобы получить количество строк в файле, а затем создать массив или ArrayList этого размера.
Затем закройте FileReader и снова откройте файл. На этот раз используйте BufferedReader br = new BufferedReader (новый FileReader (файл)). Создайте цикл для запуска через файл, вызывающий br.readLine(). Для каждой строки, которую вы читаете из br.readLine(), вызывайте parseWordData в этой строке, чтобы получить WordData и сохранить объект WordData в соответствующий индекс массива или ArrayList.
Мой код:
public class WordPath {
public static int numLines(Reader reader) {
BufferedReader br = new BufferedReader(reader);
int lines = 0;
try {
while(br.readLine() != null) {
lines = lines + 1;
}
br.close();
}
catch (IOException ex) {
System.out.println("You have reached an IOException");
}
return lines;
}
public WordData[] makeWordArray(String file) {
try {
FileReader fr = new FileReader(file);
int nl = numLines(fr);
WordData[] newArray = new WordData[nl];
fr.close();
BufferedReader br = new BufferedReader(new FileReader(file));
while(br.readLine() != null) {
int arrayNum = 0;
newArray[arrayNum] = WordData.parseWordData(br.readLine());
arrayNum = arrayNum + 1;
}
}
catch (IOException ex) {
System.out.println("You have reached an IOException");
}
catch (FileNotFoundException ex2) {
System.out.println("You have reached a FileNotFoundexception");
}
return newArray;
}
}
Я бегу ИНТ проблема, где переменная newArray не может быть найден, я считаю, потому что это в заявлении попробовать. Есть ли способ переформатировать это для работы?
Вы правы, переместите декларацию за пределами попытки – Kevin
Я пробовал, но проблема заключалась в том, что этот бит кода зависел от кода выше (fileReader fr ...), который также может генерировать исключение. – cmart