黑马程序员技术交流社区

标题: 两种判断,哪个会出错? [打印本页]

作者: 陈延真    时间: 2013-6-2 20:16
标题: 两种判断,哪个会出错?
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
/*
* 需求:请在prop.txt中查找有没有姓名是lisi的人,如果有,则修改其值为35
* 思路:把文件中的数据加载到一个集合中
*   查找lisi键是否存在,存在并修改。
*   把集合中的数据保存到文件中。
*/
public class PropertiesTest {
public static void main(String[] args) throws IOException{
  Properties prop = new Properties();
  BufferedReader br = new BufferedReader(new FileReader("store.txt"));
  //加载进集合
  prop.load(br);
  //条件判断
  if((prop.getProperty("lisi"))!=null){
   prop.put("lisi", "35");
  }
  FileWriter bw = new  FileWriter("store.txt");
  //把集合中的数据保存到文件中
  prop.store(bw,null);
  bw.close();
  br.close();
  
}
}



//第二种方式:遍历集合,看有没有键是lisi的
  Set<Object> set = prop.keySet();
  Iterator<Object> it = set.iterator();
  while(it.hasNext()){
   Object key = it.next();
   if("lisi".equals(key)){
    //存在就修改
    prop.put(key, "35");
   }
  }

作者: First    时间: 2013-6-3 15:34
两种方式都能正常运行,不知道楼主希望的错误是什么?
如果是TreeMap 就允许存放null, Properties 存放null 会报错
作者: 陈延真    时间: 2013-6-3 19:19
First 发表于 2013-6-3 15:34
两种方式都能正常运行,不知道楼主希望的错误是什么?
如果是TreeMap 就允许存放null, Properties 存放nul ...

如果要查找的元素不存在呢,会不会报错?
作者: First    时间: 2013-6-3 19:39
不存在也运行正常,
不过要是把第二种的 prop.put 改成 remove 就会报错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2