Я гуглил это пару дней без особой удачи. Я пытаюсь прочитать текстовый файл и использовать эту информацию для заполнения частных полей массива для объекта класса. Я новичок в Java и довольно новичок в программировании в целом.
То, что я придумал для чтения массива, кажется очень неуклюжим, и я чувствую, что должен быть лучший способ, но я не могу найти хороший пример для этого конкретного случая.
Создание набора строковых переменных было единственным способом заставить это работать. Возможно, main — плохое место для этого; возможно, Сканер здесь плохой выбор?
Какие есть лучшие способы реализовать эту ситуацию?
Мой текстовый файл, содержащий строки и целые числа, разделенные пробелами в строках, похож на этот:
Джо 2541 555-1212 345 1542 Тип
Боб 8543 555-4488 554 1982 Тип ... и т.д.
Вот моя большая часть моего кода до сих пор, который находится в основном:
Scanner in = new Scanner(new FileReader("accounts.txt")); //filename to import
Accounts [] account = new Accounts [10];
int i = 0;
while(in.hasNext())
{
account[i] = new Accounts();
String name = in.next();
String acct_num = in.next();
String ph_num = in.next();
String ss_num = in.next();
int open_bal = in.nextInt();
String type = in.next();
account[i].setName(name);
account[i].setAcctNum(acct_num);
account[i].setPhoneNum(ph_num);
account[i].setSSNum(ss_num);
account[i].setOpenBal(open_bal);
account[i].setType(type);
i++;
}
class Accounts
{
public Accounts()
{
}
public Accounts(String n, String a_num, String ph_num,
String s_num, int open_bal, String a_type, double close_bal)
{
name = n;
account_number = a_num;
phone_number = ph_num;
ssn = s_num;
open_balance = open_bal;
type = a_type;
close_balance = close_bal;
}
public String getName()
{
return name;
}
public void setName(String field)
{
name = field;
}
public String getAcctNum()
{
return account_number;
}
public void setAcctNum(String field)
{
account_number = field;
}
//And so forth for the rest of the mutators and accessors
//Private fields
private String name;
private String account_number;
private String phone_number;
private String ssn;
private int open_balance;
private String type;
private double close_balance;
}