Ну, похоже, вы уже знаете, как читать строки из файла, поэтому я собираюсь предположить, что вы можете сделать это.
Допустим, у вас есть какая-то строкафайл;поскольку все они имеют одинаковое форматирование, это значительно облегчает эту задачу.
Скажем так: String s = input.nextLine ();
Затем, используя String # split ("|"), мы можем легко разбить различные части этой строки на те, которые мыхочу.Допустим, у нас есть строка:
"00001 |Ordinary | |Notice Bill| | C10"
Затем, если это ввод, который мы получили, выполнив input.nextLine (), мы можем вызвать s.split ("|"), который даст наммассив следующих строк:
String[] array = {"00001 ","Ordinary "," ","Notice Bill"," "," C10"};
String также имеет хороший метод, называемый String # trim (), который удаляет все начальные и конечные пробелы (пробелы, табуляции и т. д.).
Итак, для каждой строки в массиве мы можем обрезать ввод, что даст нам следующее:
So now, we have that array = {"00001","Ordinary","","Notice Bill","","C10"}.
Теперь у нас есть кое-что, с чем мы можем легко работать.Предполагая, что выполняется тот же самый порядок (который он есть), мы можем сказать:
Customer c = new Customer(array[0], array[1], array[2], array[3], array[4], array[5]);
Комбинируя все это, мы можем сделать следующее (взяв отрывок из вашего кода):
while (input.hasNextLine()) {
String nextInput = input.nextLine();
String[] pI = nextInput.split("\\|"); //pI stands for parseableInput, escape the pipe character ('|') since it's a special char in Java.
for(int i = 0; i < nextInput.length; i++) { //trim all of the input
pI[i] = pI[i].trim();
}
Customer next = new Customer(pI[0], pI[1], pI[2], pI[3], pI[4], pI[5]);
customers.add(next);
}
Я написал это более многословно, чтобы сделать его легко читаемым.Это должно работать для каждой строки, потому что они каждый раз имеют одинаковый стиль.Если вы хотите, вы можете также сделать пустые строки представленными для клиента как «ноль», что может помочь очистить код.
Надеюсь, это помогло.
Редактировать: Добавлены цитаты в строки для ясности.