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

© 张邦庆 黑马帝   /  2011-10-30 20:34  /  3371 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Properties的load()方法是怎么实现的?

评分

参与人数 1技术分 +1 收起 理由
admin + 1 提问有奖

查看全部评分

7 个回复

倒序浏览
实现原理我也说不清,就使用方法分享一段Demo吧:
  1. package javase.day18;

  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.util.Properties;

  5. public class LoadPropertiesDemo {
  6.         public static void main(String[] args){
  7.                         try {
  8.                                 FileInputStream fis=new FileInputStream("C:\\java_test\\test1.properties");
  9.                                 Properties prop=new Properties();
  10.                                 prop.load(fis);
  11.                                 String value=prop.getProperty("key1");
  12.                                 System.out.println("value:"+value);
  13.                         } catch (IOException e) {
  14.                                 e.printStackTrace();
  15.                         }
  16.         }
  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
admin + 1 重在参与

查看全部评分

回复 使用道具 举报
InputStream is=ReflectFrame.class.getResourceAsStream("config.properties");               
Properties prp=new Properties();
prp.load(is);
is.close();

从上面的代码可以看出,Properties的加载,是通过流来完成的,
首先,java.exe调用类加载器,加载文件到内存中,或者说加载到流中,
load()方法就从流中,按键值对的形式读取数据到,完成加载

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
咖啡 黑马帝 2011-10-30 23:21:26
板凳
InputStream in = lnew BufferedInputStream(new FileInputStream(name));
       Properties p = new Properties();
       p.load(in);

评分

参与人数 1技术分 +1 收起 理由
admin + 1 看在参与的份上,送1分

查看全部评分

回复 使用道具 举报
绿影 黑马帝 2011-10-31 18:31:47
报纸
load的原理:其实就是读取文件的一行数据,因为数据的规则都是以Key=value的形式存在的。所以读取一行数据后,可以通过“=”对该行数据进行split,完成后左边为key,右边为value,存储到Properties。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
为什么不用字符流加载呢
回复 使用道具 举报
fso918 黑马帝 2011-11-2 12:25:19
7#
用字符流readLine(),将读到的字符串用等号分割,然后setProperties()下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马