在一个ArraryList中加入了东西,查的到但是改不了是为什么

这是加进去的方法:
public static void init() {
BufferedReader br = null;
String temp = null;
try {
br = new BufferedReader(new FileReader("E:\teleph.txt"));
while ((temp = br.readLine()) != null) {
String[] args = temp.split(",");
Telephone tele = new Telephone(args[0], args[1], args[2], args[3], args[4], args[5]);
book.add(tele);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

这是查询:
System.out.println("查询电话本");
for (Telephone telephone : TelephoneBookByArr.getBook()) {
System.out.println(telephone);
}

这是添加的时候:
System.out.println("****************" + "添加电话本" + "****************");
System.out.print("姓名:");
String name_ = sc.nextLine();
Telephone tele = TelephoneBookByArr.findByname(name_);
if (tele != null) {
System.out.println("姓名存在,不可添加");
break;
}
查到了这个姓名存在,但是还是可以添加。
这是findByname()方法。
public static Telephone findByname(String name) {
for (Telephone tel : book) {
if (tel.getName().equals(name)) {
return tel;
}
}
return null;
}

这是getBook()方法
public static ArrayList<Telephone> getBook() {
    return book;
}

上面的代码好像看不出来是什么问题,你看一下其他部分的逻辑

没看懂博主说什么改不了

能修改的

 public static Telephone findByname(String name) {
 for (Telephone tel : book) {
 if (tel.getName().equals(name)) {
 return tel;
 }
 }

这个方法返回的Telephone是一个引用,你直接修改这个对象就好了啊。
你说的不能修改我猜想是你只修改了list的Telephone 对象属性,但是并没有重新写入记事本,
所以下次运行还是看到原来的,你可以用输出流写入记事本。