在java.util包下面有一个类Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件)。

一. Properties结构

类继承结构如下:

  1. class Properties extends Hashtable<Object,Object>

从上面可以看出来Properties继承自Hashtable。

二. 具体案例

案例一: 读取.properties文件。

首先建立一个.properties文件,内容如下:

  1. #网站信息
  2. website = http://www.swiftlet.net
  3. author = admin
  4. date = 2015

java类如下:

  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.IOException;
  5. import java.util.Properties;
  6.  
  7. public class ReadProperties
  8. {
  9. public static void main(String[] args)
  10. {
  11. File file = new File("c:\\test.properties");
  12. FileInputStream in = null;
  13. try
  14. {
  15. in = new FileInputStream(file);
  16. }
  17. catch (FileNotFoundException e)
  18. {
  19. e.printStackTrace();
  20. }
  21. Properties p = new Properties();
  22. try
  23. {
  24. p.load(in);
  25. }
  26. catch (IOException e)
  27. {
  28. e.printStackTrace();
  29. }
  30. p.list(System.out);
  31. }
  32. }

输出结果如下:

aaarticlea/png;base64,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" alt="" />

案例二: 读取.xml文件。

首先建立一个.xml文件,内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
  3. <properties>
  4. <entry key="website">swiftlet.net</entry>
  5. <entry key="author">admin</entry>
  6. </properties>
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.IOException;
  5. import java.util.Properties;
  6.  
  7. public class ReadXml
  8. {
  9. public static void main(String[] args)
  10. {
  11.  
  12. File file = new File("c:\\test.xml");
  13. FileInputStream in = null;
  14. try
  15. {
  16. in = new FileInputStream(file);
  17. }
  18. catch (FileNotFoundException e)
  19. {
  20. e.printStackTrace();
  21. }
  22. Properties p = new Properties();
  23. try
  24. {
  25. p.loadFromXML(in);
  26. }
  27. catch (IOException e)
  28. {
  29. e.printStackTrace();
  30. }
  31. p.list(System.out);
  32. }
  33. }

输出结果如下:

aaarticlea/png;base64,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" alt="" />

三. 常见问题:

Invalid byte 1 of 1-byte UTF-8 sequence. 产生这个异常的原因是:
所读的xml文件实际是GBK或者其他编码的,而xml内容中却用<?xml version="1.0" encoding="utf-8"?>指定编码为utf-8,所以就报异常了!常见的解决访问有两种:
第一:可以直接在XML文件中更改UTF-8为GBK或GB2312
         <?xml   version="1.0"   encoding="GB2312"?>
第二:将xml文件的编码格式修改为utf-8重新保存一下就可以了。

Properties类的用法的更多相关文章

  1. Properties类一些常用的用法

    直接上代码: package test.properties; import java.io.File; import java.io.FileInputStream; import java.io. ...

  2. 标准C++中的string类的用法总结

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  3. Properties类随笔

    1. 体系介绍 Properties类继承自HashTable,勉强属于集合框架体系一员,键值对形式存储数据,当然键肯定是唯一的,底层哈希表保证键的唯一,此类一般用于表示配置文件. 2. 基本用法 由 ...

  4. Properties类对于文件的读取和写入

    Properties类表示一个持久的属性集.Properties可保存在流中或从流中加载.Properties对象只能加载以 .Properties 为后缀的文件(文件我创建在src下). 开始时文件 ...

  5. Java学习笔记31(IO:Properties类)

    Properties类,表示一个持久的j集,可以存在流中,或者从流中加载 是Hashtable的子类 map集合的方法都能用 用途之一:在开发项目中,我们最后交给客户的是一个编译过的class文件,客 ...

  6. SerialPort类的用法与示例

    转:https://www.cnblogs.com/hwBeta/p/6926363.html Microsoft .Net框架SerialPort类的用法与示例 从Microsoft .Net 2. ...

  7. properties类的基本使用方法

    properties类的基本使用方法1.假设有“pp.properties”,内容有       age=22       2.java中用下面方法:   Properties   props   = ...

  8. Properties类使用详解

    Java Properties类使用详解   概述 Properties 继承于 Hashtable.表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串. Pr ...

  9. Java 数据类型:集合接口Map:HashTable;HashMap;IdentityHashMap;LinkedHashMap;Properties类读取配置文件;SortedMap接口和TreeMap实现类:【线程安全的ConcurrentHashMap】

    Map集合java.util.Map Map用于保存具有映射关系的数据,因此Map集合里保存着两个值,一个是用于保存Map里的key,另外一组值用于保存Map里的value.key和value都可以是 ...

随机推荐

  1. HDU 1878 欧拉回路 图论

    解题报告:题目大意,给出一个无向图,判断图中是否存在欧拉回路. 判断一个无向图中是否有欧拉回路有一个充要条件,就是这个图中不存在奇度定点,然后还要判断的就是连通分支数是否为1,即这个图是不是连通的,这 ...

  2. C/C++语法知识:typedef struct 用法详解

    第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定 ...

  3. Django 的css和js压缩插件:django_compressor

    今天尝试了django_conpressor,一个在django框架中压缩css和js的插件,灰常有用 我把它加载在我的base的HTML template中,原来未经压缩的css和js是: < ...

  4. Java最常用的变量定义汇总

    Java最常用的数据类型有基本数据类型,字符串对象,数组,基本数据类型又分为:数值型(包括整形和浮点型),字符型,布尔型,下面用一个简单的程序把这些数据类型汇总一下 public class Java ...

  5. 【python-mysql】在ubuntu下安装python-mysql环境

    1.先安装mysql sudo apt-get install mysql-server apt-get isntall mysql-client sudo apt-get install libmy ...

  6. HDU 4310 Hero (贪心算法)

    A - Hero Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  7. [火狐REST] 火狐REST 模拟 HTTP get, post请求

  8. android 中如何分析内存泄漏

    转载:http://blog.csdn.net/fulinwsuafcie/article/details/8363218 前提条件: 1,电脑安装了java 运行环境 2,手机端开启了 USB 调试 ...

  9. mongoose学习笔记3--简单查询1

    简述 查询就是返回一个集合中的文档的子集 Mongoose 模型提供了 find. findOne. findById 三种方法用于文档查询. 为了方便后面课程的有效学习,我们先添加一些测试数据. T ...

  10. 线段覆盖4(codevs 3012)

    题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段 ...