Как прочитать текстовый файл и добавить его строки в массив на Java?

#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. В случае неопределенности, пожалуйста, предпочитайте комментарий ответу