Исключение в потоке "основной" Java для.яз.arrayindexoutofboundsexception: 2 в адресной книге.loadperson(адресной книги.Ява:27) в адресную книгу.&ЛТ;инициализации и GT;(адресной книги.Ява:10)
import java.util.*;// Import all the classes in the util package import javax.swing.*; import java.io.*; public class AddressBook { ArrayList persons; public AddressBook() { persons=new ArrayList(); loadPerson(); } public void loadPerson() { String tokens[]=null; String name,add,ph; try { FileReader fr=new FileReader("AddressBook.txt"); BufferedReader br=new BufferedReader(fr); String s=br.readLine(); while(s !=null ) { tokens=s.split(","); name=tokens[0]; add=tokens[1]; ph=tokens[2]; PersonInfo p=new PersonInfo(name,add,ph); persons.add(p); s=br.readLine(); } br.close(); fr.close(); } catch(IOException e) { System.out.println("unable to Load"); } } public void addPerson() { String name=JOptionPane.showInputDialog("Enter Name"); String address=JOptionPane.showInputDialog("Enter Address"); String phoneNum=JOptionPane.showInputDialog("Enter PhoneNum"); PersonInfo p=new PersonInfo(name,address,phoneNum); persons.add(p); } public void searchPerson(String n) { for (int i=0;i<persons.size();i++) { PersonInfo p=(PersonInfo)persons.get(i); if(n.equals(p.name)) { p.printPersonInfo(); } } } //remove public void deletePerson(String n) { for (int i=0;i<persons.size();i++) { PersonInfo p=(PersonInfo)persons.get(i); if(n.equals(p.name)) { persons.remove(i); } } } public void savePerson() { try { FileWriter fr=new FileWriter("mybook.txt"); PrintWriter pw=new PrintWriter(fr); String s=""; for(int i=0;i<persons.size();i++) { PersonInfo p=(PersonInfo)persons.get(i); s=p.name+","+p.address+","+p.phoneNum; pw.println(s); } pw.close(); fr.close(); } catch(IOException e) { System.out.println("unable to write"); } } }
Что я уже пробовал:
я не могу понять проблему я новичок в java