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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.io.*;
  2. import java.util.*;

  3. class  PropertiesDemo
  4. {
  5.         public static void main(String[] args) throws IOException
  6.         {
  7.                 getPro();
  8.         }
  9.         public static void getPro()
  10.         {
  11.                 Properties pro=new Properties();        //创建一个Properties集合对象

  12.                 pro.setProperty("shengyi","21");        //添加一个键值对
  13.                
  14.                 pro.setProperty("linyong","22");

  15.                 //Set<String> sets=pro.stringPropertyNames();                        //返回键字符串的集合
  16.                 //for (String s:sets)
  17.                 //{
  18.                 //        System.out.println(s+":"+pro.getProperty(s));        //获取键对应的值
  19.                 //}
  20.                
  21.                 System.out.println(pro);
  22.         }
  23.         public static void funProperties()throws IOException
  24.         {
  25.                 Properties pro=new Properties();
  26.                 BufferedReader br=new BufferedReader(new FileReader("F:\\properties.txt"));                //与配置文件相关联
  27.                 String line=null;
  28.                 while ((line=br.readLine())!=null)                                                                                                //读取到每一行的键值对
  29.                 {
  30.                         String[] aa=line.split("=");        //通过=切割字符串
  31.                        
  32.                         pro.setProperty(aa[0],aa[1]);                                                                                                //切割后的前面做键,后者做值

  33.                 }
  34.                 br.close();
  35.                
  36.                 System.out.println(pro);                                                                                                                //输出是倒过来输出的?
  37.         }
  38. }
复制代码



你们是不是倒过来了,谁能解释一下为什么是倒过来的

7 个回复

倒序浏览
Properties是hashTable的子类,是用来存储键值对的,底层数据结构是哈希表,对数据的存放时无序的。
回复 使用道具 举报
我试了一下没有倒过来呀?能截个图看下嘛?
另外,Properties 有一个load 方法可以直接关联一个输入流,然后list 方法直接关联一个输出流,不用单独定义读取流读取文件,然后截取字符串了
pro.load(new FileReader("F:\\properties.txt"));
pro.list(System.out);
你试试,很方便
回复 使用道具 举报
想要那片海 发表于 2015-6-7 21:22
我试了一下没有倒过来呀?能截个图看下嘛?
另外,Properties 有一个load 方法可以直接关联一个输入流,然 ...

图片给你了,代码中getPro方法是按顺序输出的,但是funProperties的结果如图片所示

配置文件图片.png (5.94 KB, 下载次数: 4)

配置文件

配置文件

效果.png (120.47 KB, 下载次数: 7)

代码和运行效果

代码和运行效果
回复 使用道具 举报
qq496099229 发表于 2015-6-7 21:45
图片给你了,代码中getPro方法是按顺序输出的,但是funProperties的结果如图片所示

...

二楼说的很对,properties 对键的存储是无序的
回复 使用道具 举报
武汉小菜鸟 发表于 2015-6-7 21:11
Properties是hashTable的子类,是用来存储键值对的,底层数据结构是哈希表,对数据的存放时无序的。 ...

存放无序,那打印是逆序,打印有顺序?
回复 使用道具 举报
qq496099229 发表于 2015-6-7 22:09
存放无序,那打印是逆序,打印有顺序?

这只是一个偶然,你可以在加几行数据,就知道了
回复 使用道具 举报
武汉小菜鸟 发表于 2015-6-7 22:58
这只是一个偶然,你可以在加几行数据,就知道了

上网找个配置文件试试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马