I can not figure out why my code is reading in data to my vector in funny ways. I have added the input file and necesary class to test.
It seems to be skipping values in the input file and also adding things to seperate places in the vector instead of one place like I intended.
Any help would be much appreciated.
import java.util.*;
import java.io.*;
public class AddressBook {
public static Vector<Contact> contacts = new Vector<Contact>(100, 10);
//buildBook creates Contacts from the input txt file and adds them to a
//vector. This vector is our Address Book
public static void buildBook() {
try {
Scanner in = new Scanner(new File("input.txt"));
in.useDelimiter(", ");
while(in.hasNext()) {
Contact temp = new Contact();
int index = 0;
temp.setfirstName(in.next());
temp.setlastName(in.next());
temp.sethomePhone(in.next());
temp.setworkPhone(in.next());
temp.setmobilePhone(in.next());
temp.setaddress(in.next());
temp.setcity(in.next());
temp.setstate(in.next());
temp.setzip(in.next());
temp.setemail(in.next());
temp.setbirthday(in.next());
temp.setfavorite(in.nextBoolean());
contacts.add(index, temp);
index++;
}
in.close();
}
catch(FileNotFoundException e) {};
}
//adds a contact to the end of the vector
public static void addContact(Contact contact) {
Contact temp = contact;
contacts.addElement(temp);
}
//removes a contact from the vector
public static void removeContact(Contact contact) {
Contact temp = contact;
contacts.remove(temp);
}
//the save method will keep our vector and address book database up-to-date
public static void Save() {
//everytime the 'save' button is pressed the vector will pass all Contacts into an array
Contact myArray[] = new Contact[contacts.size()];
contacts.toArray(myArray);
try {
//the array will then be iterated through, creating a new input file with any changes that have been made
PrintWriter out = new PrintWriter(new File("input.txt"));
for(int i = 0; i < contacts.size(); i++) {
Contact temp = myArray[i];
out.print(temp.getfirstName() + ", ");
out.print(temp.getlastName() + ", ");
out.print(temp.gethomePhone() + ", ");
out.print(temp.getworkPhone() + ", ");
out.print(temp.getmobilePhone() + ", ");
out.print(temp.getaddress() + ", ");
out.print(temp.getcity() + ", ");
out.print(temp.getstate() + ", ");
out.print(temp.getzip() + ", ");
out.print(temp.getemail() + ", ");
out.print(temp.getbirthday() + ", ");
out.print(temp.getfavorite() + ", ");
out.println();
}
out.close();
}
catch(FileNotFoundException e) {};
//it will then reset the vector
contacts.removeAllElements();
//and rebuild using the new/updated input file
buildBook();
}
public static void main(String[] args) {
buildBook();
Contact test = contacts.get(0);
System.out.println(test.getfirstName());
}
}