これは、アドレス帳プロジェクトのコードスニペットです。私はテキストファイルからテキストをロードしたいが、作成したクラスを文字列に変換することができず、スキャン方法がわからないので、私は立ち往生している。テキストファイルからテキストをロードする(初心者はこちら)java
私はどのように2つの文字列を読み込むことができますか?例えば、文字列firstnameとString familyname? (編集)編集したので、欠落していたメソッドとクラスを追加しました。
class Person {
int id;
String firstname;
String familyname;
Person(int id, String firstname, String familyname) {
this.id = id;
this.firstname = firstname;
this.familyname = familyname;
}
public void setId(int id) {
this.id = id;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public void setFamilyname(String familyname) {
this.familyname = familyname;
}
public int getId() {
return this.id;
}
public String getFirstname() {
return this.firstname;
}
public String getFamilyname() {
return this.familyname;
}
}
class AddressBook {
ArrayList<Person> addresses = new ArrayList<Person>();
int id = 0;
AddressBook() {
load();
public void add(String firstName, String familyName) {
Person person = new Person(++id, firstName, familyName);
addresses.add(person);
}
public void load() {
try {
File file = new File("AddressBook.txt");
Scanner scanner = new Scanner(file);
Person person;
while (scanner.hasNextLine()) {
person = scanner.nextLine();
add(person.getFirstname(),person.getFamilyname());
}
} catch (IOException e) {
System.out.println("Error in input/output");
}
}
public void save() {
try {
PrintWriter writer = new PrintWriter("AddressBook.txt", "UTF-8");
for (Person person: addresses) {
writer.println(person.getFirstname()+" "+person.getFamilyname());
}
writer.close();
} catch (IOException e) {
System.out.println("Error in input/output");
}
}
}
string.split( "")を使用します。あなたのコードが構築される方法は決してうまくいかないでしょう。 nextLine()は文字列を返しますが、Person – Stultuske
のインスタンスに割り当てようとすると、コードスニペットにテンプレートを追加する必要があります。データをファイル "AddressBook.txt"に保存して分割する方法を知っているはずです各行の異なるフィールド... – mlwn
'add'も手続きがありません。' Person'をどこに追加しますか? – mlwn