Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 354|回复: 0

[xml学习]读/写XML格式的properties文件

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-10 00:58:42 | 显示全部楼层 |阅读模式
    想必大家都用过*.properties文件,作为配置文件。但是,如果该文件写入了中文,待编译后内容就会成为乱码,使用native命令也好、使用ant执行编码转换也好,多少有点麻烦,与其如此,我们不如直接使用properties的xml格式。在JDK5中,properties文件的格式可以由XML构成.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
            <comment>logoLocation</comment>
            <entry
                    key="logoLocation"><![CDATA[/image/logo/]]></entry>
            <entry
                    key="mail.host"><![CDATA[webmaster@zlex.org]]></entry>
            <entry
                    key="site.name"><![CDATA[zlex中文网站]]></entry>
    </properties>
    [/code] 对应原有的properties文件
    #logoLocation
    logoLocation=/image/logo/
    mail.host=webmaster@zlex.org
    site.name=zlex中文网站


    因为使用XML格式,不受系统编译影响,不存在中文问题.[/code] 这里给出了一个读取/书写XML格式properties文件的例子。
    因为使用了XML,所以文件内容支持了CJKV(中文、日文、韩文、越南语)。可以直接书写、调用。

    1. import java.io.FileInputStream;
    2. import java.io.FileOutputStream;
    3. import java.io.IOException;
    4. import java.io.InputStream;
    5. import java.io.OutputStream;
    6. import java.util.Properties;
    7. public class PropertiesTest {
    8.     /**
    9.      * @param args
    10.      */
    11.     public static void main(String[] args) {
    12.          
    13.          
    14.         // 书写properties文件
    15.         Properties properties = new Properties();
    16.         properties.put("ONE", "1");
    17.         properties.put("TWO", "2");
    18.         properties.put("中文", "看看中文怎么样");
    19.         properties.put("日本&#65533;", "日本&#65533;はどう?");
    20.         properties.put("???", "???");
    21.         properties.put("Th?o lu?n ti?ng Vi?t", "Th?o lu?n ti?ng Vi?t");         
    22.         OutputStream stream = null;
    23.         http://www.loveapple.cn
    24.         try {
    25.             stream = new FileOutputStream("temp.xml");
    26.             properties.storeToXML(stream, "Temporary Properties");
    27.         }
    28.         catch (IOException ex) {
    29.             ex.printStackTrace();
    30.         }finally{
    31.             try{
    32.                 stream.close();
    33.             }catch(Exception e){
    34.             }
    35.         }
    36.         // 读取properties文件
    37.         Properties properties2 = new Properties();
    38.         InputStream is = null ;
    39.         try{
    40.             is = new FileInputStream("temp.xml");
    41.             properties2.loadFromXML(is);
    42.             System.out.println(properties2);
    43.         }catch (IOException e) {
    44.             e.printStackTrace();
    45.         }finally{
    46.             try{
    47.                 is.close();
    48.             }catch (Exception e) {
    49.             }
    50.         }
    51.    }
    52. }
    复制代码


      
      
       
       

         
       

         
       
      
    复制代码

    源码下载:http://file.javaxxz.com/2014/10/10/005842609.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-16 03:43 , Processed in 0.408468 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表