A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我知道Propterties里面提供有load()是用来读取字符流的键和值的,可我下面没用这个方法,只是将键值对切割然后存在Propterties里的。

public static void main(String[] args) throws Exception {
                PropterValues();
        }
        /**
         * 用流来读取文件的键值对
         * @throws IOException
         */
        public static void PropterValues() throws IOException{

                FileReader in = new FileReader("E:\\myuser\\JavaFileList.txt");
                BufferedReader buff = new BufferedReader(in);
                Properties p = new Properties();
                String line =null;
                while((line = buff.readLine())!=null){
                        String arr[] = line.split("==");//切割字符串
                        p.setProperty(arr[0], arr[1]);//为什么这里会报错?
                }
                buff.close();
                System.out.println(p);
        }

2 个回复

倒序浏览
你怎么用两个“=”切割?是文件内容就是这样?
回复 使用道具 举报
  1. while((line = buff.readLine())!=null){
  2.                 String arr[] = line.split("=");//这里一定是一个等号,因为这就是Properties文件的格式
  3.                 p.setProperty(arr[0], arr[1]);//若上面是两个等号,那对于"name=bee"这样的字符串是切不出两个来的,就一个arr[0]="name=bee",没有arr[1],所以会报数组下标越界
  4.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马