黑马程序员技术交流社区

标题: Properties用法 [打印本页]

作者: 张邦庆    时间: 2011-10-30 20:34
标题: Properties用法
Properties的load()方法是怎么实现的?
作者: 庄承荣    时间: 2011-10-30 22:30
实现原理我也说不清,就使用方法分享一段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. }
复制代码

作者: 李建雄    时间: 2011-10-30 23:11
InputStream is=ReflectFrame.class.getResourceAsStream("config.properties");               
Properties prp=new Properties();
prp.load(is);
is.close();

从上面的代码可以看出,Properties的加载,是通过流来完成的,
首先,java.exe调用类加载器,加载文件到内存中,或者说加载到流中,
load()方法就从流中,按键值对的形式读取数据到,完成加载
作者: 咖啡    时间: 2011-10-30 23:21
InputStream in = lnew BufferedInputStream(new FileInputStream(name));
       Properties p = new Properties();
       p.load(in);


作者: 绿影    时间: 2011-10-31 18:31
load的原理:其实就是读取文件的一行数据,因为数据的规则都是以Key=value的形式存在的。所以读取一行数据后,可以通过“=”对该行数据进行split,完成后左边为key,右边为value,存储到Properties。
作者: 杨玉揆    时间: 2011-11-1 23:11
为什么不用字符流加载呢
作者: fso918    时间: 2011-11-2 12:25
用字符流readLine(),将读到的字符串用等号分割,然后setProperties()下




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