黑马程序员技术交流社区

标题: 为什么有时运行,就报异常呢 [打印本页]

作者: HeiMa-黄倲江    时间: 2012-11-4 23:06
标题: 为什么有时运行,就报异常呢
本帖最后由 qq84995227 于 2012-11-5 01:37 编辑

public static void demo_2()throws IOException{
                //用到BufferedReader 就必须要有一个FileReader对象的文件
                BufferedReader bufr = new BufferedReader(new FileReader("info.txt"));
                String line = null;
                // 创建一个Properties
                Properties prop = new Properties();
                //如果line不等于空执行的操作
                while((line=bufr.readLine()) != null){
                        //在等号那里进行分割
                        String[] arr = line.split("=");                        //将数据保存到集合里面去
                        prop.setProperty(arr[0], arr[1]);
                }
                bufr.close();
                System.out.println(prop);
        }

infu.txt 的数据

zhangsan =10
lisi = 20
wangwu =90


会不会是数组切割的时候,出现的异常阿.  还是properties  .......

把代码改成下面那样子的时候,就没问题了.
        //创建properties
                Properties prop = new Properties();
                //创建一个流对象
                FileInputStream fis = new FileInputStream("info.txt");
                //将流中的数据加载进集合  比下面哪种更简单易懂
                //需求那我要修改info.txt里面的数据呢
                prop.load(fis);

可是老觉得上面那种方法也没问题阿..
异常显示为:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
        at cn.max.DemoPrperties.demo_2(DemoPrperties.java:51)
        at cn.max.DemoPrperties.main(DemoPrperties.java:17)

异常说我数组有问题:
String[] arr = line.split("=");
prop.setProperty(arr[0], arr[1]);
是这里出问题吗?
作者: 小灰灰    时间: 2012-11-4 23:23
报的是数组越界异常,你可以Debug 一下
我猜测是你的文本数据的问题
作者: 葛旭东    时间: 2012-11-5 01:03
因为读取了一个空行(里面只有“\r\n”标记),则String[] arr = line.split("=")后arr中只有一个null元素,所以arr[1]会角标越界。

改成    if(line.length()>2)
                {
                      arr = line.split("=");         
              prop.setProperty(arr[0], arr[1]);
                }
就可以了。
作者: HeiMa-黄倲江    时间: 2012-11-5 01:37
葛旭东 发表于 2012-11-5 01:03
因为读取了一个空行(里面只有“\r\n”标记),则String[] arr = line.split("=")后arr中只有一个null元素 ...

搞定了 xx




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