Я работаю над этим банкоматом (максимум 50 клиентов), где я читаю .txt-файл, а затем создаю несколько экземпляров, сохраняя их в массиве, чтобы другие классы могли позвоните им. Когда я прочитал файл, введены только данные последнего клиента - я не могу заставить первых клиентов получить правильный результат.Ошибка при чтении экземпляров
Есть несколько методов для каждого «Set», только в случае, если поле не говорит «ни один», так что я могу оставить его в качестве
Double.NaN or null, for example.
Я исследовал на нескольких веб-сайтах, и там WASN «Очень важно хранить экземпляры в массивах, хотя на одном веб-сайте он сказал, что я должен объявить его так же, как обычный массив.
private static String firstname = "";
private static String lastname = "";
private static int sin = 0;
private static int year = 0;
private static int month = 0;
private static int day = 0;
private static double sbalance = 0.0;
private static double cbalance = 0.0;
private static double cardbal = 0.0;
private static boolean confirm = false;
public int customernumber;
public static customer [] customerarray = new customer [50];
public static void readfile(){
String sb = "";
String cb = "";
String ca = "";
int counter = 0;
String thisLine;
try {
BufferedReader br = new BufferedReader(new FileReader("bankinfo.txt"));
while ((thisLine = br.readLine()) != null) {
customerarray[counter].setLastName(thisLine);
System.out.print (customerarray[counter].getLastName());
customerarray[counter].setFirstName(br.readLine());
System.out.print (customerarray[counter].getFirstName());
customerarray[counter].setSin(Integer.parseInt(br.readLine()));
System.out.print (customerarray[counter].getSin());
customerarray[counter].setYear(Integer.parseInt(br.readLine()));
System.out.print (customerarray[counter].getYear());
customerarray[counter].setMonth(Integer.parseInt(br.readLine()));
System.out.print (customerarray[counter].getMonth());
customerarray[counter].setDay(Integer.parseInt(br.readLine()));
System.out.print (customerarray[counter].getDay());
sb = br.readLine();
if (sb.equals("none")){
customerarray[counter].setSBalance("none") ;
System.out.print (customerarray[counter].getSBalance());
}
else {
customerarray[counter].setSBalance(Double.parseDouble(sb));
System.out.print (customerarray[counter].getSBalance());
}
cb = br.readLine();
if (cb.equals ("none")){
customerarray[counter].setCBalance ("none");
}
else if (cb != "none"){
customerarray[counter].setCBalance(Double.parseDouble(cb));
}
else{
System.out.print ("error CBalance");
}
ca = br.readLine();
if (ca.equals("none")){
customerarray[counter].setSBalance("none") ;
}
else {
customerarray[counter].setCardbal(Double.parseDouble(ca));
}
counter = counter + 1;
}
br.close();
}
catch (IOException e) {
System.err.println("Error: " + e);
}
}
Текстовый файл довольно прост - он состоит из 9 полей для каждого клиента. Если у них нет определенной учетной записи, она отображается как «нет», и когда читатель читает их, он использует вариантный метод со строковым вводом и устанавливает double = Double.NaN();
Ниже приведен пример текстового файла. Каждый клиент имеет 9 полей.
Tam
Christian
984635684
1996
6
12
none
10233.52
none
Yang
Wesley
324917400
1996
8
1
3233.36
none
none
Lin
Sophia
1984
1985
5
6
912.12
58.96
95.63
Что такое 'Double.DaD' снова? Вы имеете в виду ['Double.NaN'] (http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#NaN)? – Makoto
Упс, мой плохой, у меня это правильно в моей основной программе, это просто пошло мне в голову. – kryyn
код, который вы отправили, даже не запускается, нет вызова конструктора объектов-клиентов –