У меня есть текстовый файл, содержащий 5 клиентов (по 1 на строку), Клиент 1, Клиент 2, Клиент 3, Клиент 4 и Клиент 5. Используя следующий код, он отлично читает 5 строк текста;
import java.io.*;
public class CustomerIO {
public void method () {
try (BufferedReader br = new BufferedReader(new FileReader(new File ("Customers.txt")))) {
int numberOfLines = readLines();
String [] text = new String [numberOfLines];
for (int i = 0; i < numberOfLines; i++) {
text[i] = br.readLine();
}
for (int i = 0; i < numberOfLines; i++) {
System.out.println(text[i]);
}
} catch (Exception e) {
e.printStackTrace();
}
private int readLines() {
try (BufferedReader br = new BufferedReader(new FileReader(new File ("Customers.txt")))) {
while ((line = br.readLine()) != null) {
numberOfLines++;
}
} catch (Exception e) {
e.printStackTrace();
}
return numberOfLines;
}
}
Однако, когда я переключаюсь на следующее, вывод: Customer 2, Customer 4, null
import java.io.*;
public class CustomerIO {
String line;
int numberOfLines = 0;
public void method () {
try (BufferedReader br = new BufferedReader(new FileReader(new File ("Customers.txt")))) {
while (br.readLine() != null) {
System.out.println(br.readLine());
}
} catch (Exception e) {
e.printStackTrace();
}
}
private int readLines() {
try (BufferedReader br = new BufferedReader(new FileReader(new File ("Customers.txt")))) {
while ((line = br.readLine()) != null) {
numberOfLines++;
}
} catch (Exception e) {
e.printStackTrace();
}
return numberOfLines;
}
}
Основной метод содержится в следующем файле runner.class
public class Runner {
public static void main(String[] args) {
CustomerIO cus = new CustomerIO ();
cus.method();
}
}
Можете ли вы помочь мне понять, почему это происходит? Я хочу читать клиентов в arraylist, когда он правильно читает, а не работает со строкой [].
Спасибо