Я пытаюсь написать код, который читает из файла, в котором перечислены продукты Apple.У меня также есть два класса, которые хранят данные из файла в массиве объектов из этих файлов.
Но всякий раз, когда я пытаюсь получить значения из массива этих объектов, он всегда остается нулевым.
Я думаю, что что-то не так с чтением этих значений из файла, но я не могу определить, какие именно.Кроме того, в настоящее время в моем распоряжении нет отладчика.
Это код, который я использую для чтения файла и сохранения его значений в классах.
Scanner fScanner=null;
FileWriter fw = null;
try {
fScanner = new Scanner(new File("apple.txt"));
}
catch (FileNotFoundException e) {
System.out.println(e.toString());
}
while(fScanner.hasNextLine()) {
String line = fScanner.nextLine();
Scanner lineScanner = new Scanner(line);
if(lineScanner.next().equals("IPHONE"))
countIphone++;
else if(lineScanner.next().equals("IPAD"))
countIpad++;
}
Iphone[] iphone = new Iphone[countIphone];
Ipad[] ipad = new Ipad[countIpad];
while(fScanner.hasNextLine()) {
String line = fScanner.nextLine();
Scanner lineScanner = new Scanner(line);
if(lineScanner.next().equals("IPHONE")) {
for(int i=0;i<countIphone;i++) {
iphone[i].setModel("IPHONE"+lineScanner.useDelimiter(",").next());
iphone[i].setScreenSize(lineScanner.useDelimiter(",").next());
iphone[i].setProcessor(lineScanner.useDelimiter(",").next());
iphone[i].setSimType(lineScanner.useDelimiter(",").next());
iphone[i].setColor(lineScanner.useDelimiter(",").next());
iphone[i].setROM(lineScanner.useDelimiter(",").next());
iphone[i].setIs3DTouch(lineScanner.useDelimiter(",").next());
iphone[i].setPrice(lineScanner.useDelimiter(",").next());
}
}
else if(lineScanner.next().equals("IPAD")) {
for(int i=0;i<countIpad;i++) {
ipad[i].setModel("IPAD"+lineScanner.useDelimiter(",").next());
ipad[i].setScreenSize(lineScanner.useDelimiter(",").next());
ipad[i].setProcessor(lineScanner.useDelimiter(",").next());
ipad[i].setIsWifi(lineScanner.useDelimiter(",").next());
ipad[i].setColor(lineScanner.useDelimiter(",").next());
ipad[i].setMemory(lineScanner.useDelimiter(",").next());
ipad[i].setPrice(lineScanner.useDelimiter(",").next());
}
}
}
Файл выглядит следующим образом:
IPHONE 7, 4.7, A10, GSM, JET BLACK, 32GB, TRUE, 700
IPAD AIR 2, 9.7, A8, TRUE, SILVER, 64GB, 400
IPHONE SE, 4, A9, CDMA, SILVER, 16GB, FALSE, 490
IPAD PRO, 9.7, A9, TRUE, SPACE GREY, 32GB, 650
IPHONE X, 7, A11, LTE, BLACK, 128GB, TRUE, 999
IPAD PRO X, 12, A12, TRUE, SPACE GREY, 256GB, 700