#java #arrays #file #io #populate
#Ява #массивы #файл #io #населять
Вопрос:
Я новичок в кодировании, и мне было интересно, как я смогу добавить строки моего текстового файла в массив в своей программе. Мой код выглядит так:
import java.io.*; public class Test { static String [] name = new String [3]; static String [] surname = new String [3]; public static void main(String[] args) { try{ BufferedReader reader =null; String currentLine = reader.readLine(); reader=new BufferedReader(new FileReader("Names.txt")); int x=0; while(currentLine!=null){ name[x]=reader.readLine(); currentLine=reader.readLine(); surname[x]=reader.readLine(); currentLine=reader.readLine(); x=x 1; } } catch(Exception e){ System.out.println("The following error occured:" e.getMessage()); } for(int x =0; xlt;name.length; x ){ System.out.println( "name:" name[x] "n" "surname: " surname[x] "n" ); } }
Ошибка, которую я получаю, такова Cannot invoke "java.io.BufferedReader.readLine()" because "reader" is null
. Как мне это исправить?
Комментарии:
1. Ваша текущая строка равна нулю, поэтому она никогда не входит в цикл while, который у вас есть, где оператор не равен нулю.
Ответ №1:
- Объект BufferedReader равен нулю, и вы пытаетесь получить доступ, который невозможен в java.
- Я не понял, что именно вы пытаетесь сделать, но вы можете сделать что-то подобное.
public class Task3 { static String [] name = new String [3]; static String [] surname = new String [3]; public static void main(String[] args) { try{ BufferedReader reader =null; reader=new BufferedReader(new FileReader("/home/ancubate/names.txt")); Listlt;Stringgt; lines = reader.lines().collect(Collectors.toList()); int x=0; while(lines.size() != (x 1)){ name[x]=lines.get(x); surname[x]=lines.get(x); x=x 1; } } catch(Exception e){ System.out.println("The following error occured:" e.getMessage()); } for(int x =0; xlt;name.length; x ){ System.out.println( "name:" name[x] "n" "surname: " surname[x] "n" ); } } }
- reader.lines() — для получения всех строк из файла
- коллекционировать(Коллекционеры.ToList()) — API потока собирает как список
Ответ №2:
Я не уверен в своем ответе. Я думаю, это потому, что вы забыли импортировать пакет ввода-вывода java в программу. Надеюсь, ты понял.
Комментарии:
1. Я действительно добавил его, но, к сожалению, он по-прежнему выдает ту же ошибку.
2. В случае неопределенности, пожалуйста, предпочитайте комментарий ответу