java资源文件获取属性_Java读写资源文件类Properties

Java中读写资源文件最重要的类是Properties

1) 资源文件要求如下:

1、properties文件是一个文本文件

2、properties文件的语法有两种,一种是注释,一种属性配置。

注    释:前面加上#号

属性配置:以“键=值”的方式书写一个属性的配置信息。

3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。

4、properties的属性配置键值前后的空格在解析时候会被忽略。

5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。

eg:

正确的资源文件格式为:

a9f4657783e6b0dab125d2593833c023.png

2) 功能大致如下:

1. 读写Properties文件

2. 读写XML文件

3. 不仅可以读写上述两类文件,还可以读写其它格式文件如txt等,只要符合key=value格式即可.

Properties能读取以key,value存储的任何格式文件,看一下他的类结构就知道为什么了

13183b409d1d45df39425cde760d5879.png

从上面的类结构图可以看出,它继承了Hashtable并实现了Map接口

3)代码演示:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagecom.ifly.myhome.test;2

3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileOutputStream;6 importjava.io.IOException;7 importjava.io.InputStream;8 importjava.io.OutputStream;9 importjava.io.UnsupportedEncodingException;10 importjava.util.Properties;11

12 public classPropertiesMyTest13 {14

15 public static voidmain(String[] args)16 {17

18 String readfile = "e:" + File.separator + "readfile.properties";19 String writefile = "e:" + File.separator + "writefile.properties";20 String readxmlfile = "e:" + File.separator + "readxmlfile.xml";21 String writexmlfile = "e:" + File.separator + "writexmlfile.xml";22 String readtxtfile = "e:" + File.separator + "readtxtfile.txt";23 String writetxtfile = "e:" + File.separator + "writetxtfile.txt";24

25 readPropertiesFile(readfile); //读取properties文件

26 writePropertiesFile(writefile); //写properties文件

27 readPropertiesFileFromXML(readxmlfile); //读取XML文件

28 writePropertiesFileToXML(writexmlfile); //写XML文件

29 readPropertiesFile(readtxtfile); //读取txt文件

30 writePropertiesFile(writetxtfile); //写txt文件

31 }32

33 //读取资源文件,并处理中文乱码

34 public static voidreadPropertiesFile(String filename)35 {36 Properties properties = newProperties();37 try

38 {39 InputStream inputStream = newFileInputStream(filename);40 properties.load(inputStream);41 inputStream.close(); //关闭流

42 }43 catch(IOException e)44 {45 e.printStackTrace();46 }47 String username = properties.getProperty("username");48 String passsword = properties.getProperty("password");49 String chinese = properties.getProperty("chinese");50 try

51 {52 chinese = new String(chinese.getBytes("ISO-8859-1"), "GBK"); //处理中文乱码

53 }54 catch(UnsupportedEncodingException e)55 {56 e.printStackTrace();57 }58 System.out.println(username);59 System.out.println(passsword);60 System.out.println(chinese);61 }62

63 //读取XML文件,并处理中文乱码

64 public static voidreadPropertiesFileFromXML(String filename)65 {66 Properties properties = newProperties();67 try

68 {69 InputStream inputStream = newFileInputStream(filename);70 properties.loadFromXML(inputStream);71 inputStream.close();72 }73 catch(IOException e)74 {75 e.printStackTrace();76 }77 String username = properties.getProperty("username");78 String passsword = properties.getProperty("password");79 String chinese = properties.getProperty("chinese"); //XML中的中文不用处理乱码,正常显示

80 System.out.println(username);81 System.out.println(passsword);82 System.out.println(chinese);83 }84

85 //写资源文件,含中文

86 public static voidwritePropertiesFile(String filename)87 {88 Properties properties = newProperties();89 try

90 {91 OutputStream outputStream = newFileOutputStream(filename);92 properties.setProperty("username", "myname");93 properties.setProperty("password", "mypassword");94 properties.setProperty("chinese", "中文");95 properties.store(outputStream, "author: shixing_11@sina.com");96 outputStream.close();97 }98 catch(IOException e)99 {100 e.printStackTrace();101 }102 }103

104 //写资源文件到XML文件,含中文

105 public static voidwritePropertiesFileToXML(String filename)106 {107 Properties properties = newProperties();108 try

109 {110 OutputStream outputStream = newFileOutputStream(filename);111 properties.setProperty("username", "myname");112 properties.setProperty("password", "mypassword");113 properties.setProperty("chinese", "中文");114 properties.storeToXML(outputStream, "author: shixing_11@sina.com");115 outputStream.close();116 }117 catch(IOException e)118 {119 e.printStackTrace();120 }121 }122

123 }

View Code

运行本程序所需的资源文件,我是放在E盘根目录,如E:/readfile.properties

1. readfile.properties

username=kh

password=kh

chinese=谓语

2. writefile.properties

#author: shixing_11@sina.com

#Fri May 28 22:19:44 CST 2010

password=kh

chinese=\u8C13\u8BED

username=kh

3. readxmlfile.xml

mypassword

中文

myname

4. writexmlfile.xml

kh

中文

kh

5. readtxtfile.txt

username=kh

password=kh

chinese=中文

6. writetxtfile.txt

password=kh

chinese=/u4E2D/u6587

username=kh

4)Properties获取数据乱码解决

1.原因

Properties调用load(InputStream)时,读取文件时使用的默认编码为ISO-8859-1;当我们讲中文放入到properties文件中,通过getProperty(key)获取值时,取到得数据是ISO-8859-1格式的,但是ISO-8859-1是不能识别中文的。

2.解决方法

通过getProperty()获取的数据data既然是ISO-8859-1编码的,就通过data.getByte(“iso-8859-1”)获取获取,使用new String(data.getByte(“iso-8859-1”),”UTF-8”)进行转换。当然properties文件的编码类型需要和new String(Byte[],charst)中的第二个参数的编码类型相同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532024.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java被放弃了_为什么学Java那么容易放弃?

学习Java确实很容易就放弃,但是也很容易就学好,因为大多数人都是抱着试一试的心态,然后当后面就坚持不下去但是回过头来想一想,打游戏上分容易吗,一样是磕磕碰碰的,有时候十几连跪都不会放弃你上分的心情。…

java编程50_java经典50编程题(1-10)

1.有一对兔子从出生后第三个月起,每个月都生一对小兔子,小兔子长到三个月后每个月又生一对兔子,假设兔子不死亡,问每个月兔子的总数为多少?分析过程图片发自简书App示例代码图片发自简书App运行结果图片发自简书App反思…

超大规模集成电路_纳米级超大规模集成电路芯片低功耗物理设计分析(二)

文 | 大顺简要介绍了功耗的组成,在此基础上从工艺、电路、门、系统四个层面探讨了纳米级超大规模集成电路的低功耗物理设计方法。关键词:纳米级;超大规模集成电路;电路芯片;电路设计02纳米级超大规模集成电路芯片低功耗…

outlook反应慢的原因_保险管怎么区分慢熔和快熔?

保险丝快熔与慢熔的区别所有双帽;对于这样的产品特性和安全性熔丝; gG的”,即,与接触帽组合接触;即,所述双(内/外盖)的盖。和一般的小型或地下加工厂,以便执行切割角,降低生产成本,这将选择单个帽铆接“单&…

word 通配符_学会Word通配符,可以帮助我们批量处理好多事情

长文档需要批量修改或删除某些内容的时候,我们可以利用Word中的通配符来搞定这一切,当然,前提是你必须会使用它。通配符的功能非常强大,能够随意组合替换或删除我们定义的规则内容,下面易老师就分享一些关于查找替换通…

java 运行 出现选择_Eclipse 运行出现java.lang.NoClassDefFoundError的解决方法

上篇博文也提到了这个问题,但没有深入的讲解。这次特意做了整理,详细解释其原因。先看错误java.lang.NoClassDefFoundError,显然是java虚拟机找不到指定的类,多数情况下是外部jar中的类。Eclipse的自动化,集成化&#…

设置熄屏_刚买的手机微信收不到信息提醒耽误事情,手机到手一定要这样设置...

手机使用过程中经常会遇到第三方软件接收不到信息提醒的状况,常常因此耽误了很多重要的事情,造成损失。特别是刚换新手机或者手机刚升级系统时发生的最多。一般都觉得是手机问题,其实只是手机的系统设置出现了问题,只要跟我按照以…

multipartfile 获取音频时长_抖音音频下载捷径:一键提取音频,安卓+ios全通用,完全免费...

本文相关:抖音音频提取、抖音音频快捷指令、捷径怎么获取抖音音乐…昨天有抖友分享了一个抖音短视频链接,告诉我,她很喜欢这个视频里的歌曲,但是在很多歌曲app上面却找不到相同的版本,然后就问我,有没有什么…

php windows共享内存,给PHP开启shmop扩展实现共享内存

这篇文章主要介绍了关于给PHP开启shmop扩展实现共享内存,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下在项目开发中,想要实现PHP多个进程之间共享数据的功能,让客户端连接能够共享一个状态&#xff0c…

导入ansys的实体怎么进行parameter_ANSYS在线缆线束设计中的仿真应用

ANSYS采用ANSYS Maxwell、Q3D、Twin Builder等电磁仿真软件,从线缆线束设计、寄生参数RLCG提取、到系统电磁兼容提供了全面仿真分析。创建模型ANSYS在Maxwell软件基础上提出针对用户定制化的“线缆线束设计工具包”,帮助客户参数化建立特定几何模型&…

怎么做95置信区间图_这种动态的OD图怎么做?简单3步快速搞定

之前在视频号中发过一个单车的出行数据可视化效果。动态展示了某天单车不同时段的运行情况,这种动态的OD可视化效果是如何制作的呢?使用的是kepler.gl进行制作的,其实非常简单,3步即可快速搞定。一、数据软件准备1、软件制作这种动…

捡到vivo手机怎么清除账号_为什么现在买手机,很少会去考虑OPPO和vivo呢?看一下老板怎么说...

不知道大家是否注意到,近年来OPPO和vivo的报道越来越少,而华为、荣耀和小米出现的频率越来越高。此外,网络上还有另外一个声音,一个专业的机友朋友说,宁可选择小米、OPPO和vivo,为什么熟悉自己手机的人不考…

php分析图片中水印的位置,关于ThinkPHP打水印及设置水印位置的分析

这篇文章主要介绍了ThinkPHP打水印及设置水印位置的方法,结合实例形式分析了thinkPHP打印与设置水印的相关操作步骤与具体实现技巧,需要的朋友可以参考下本文实例讲述了ThinkPHP打水印及设置水印位置的方法。分享给大家供大家参考,具体如下:最近在用Thin…

华为交换机命令_华为交换机常用命令

华为交换机常用命令:1、display current-configuration 显示当前配置2、display interface GigabitEthernet 1/1/4 显示接口信息3、display packet-filter interface GigabitEthernet 1/1/4 显示接口acl应用信息4、display acl all 显示所有acl设置 3900系列交换机5…

文件管理系统_Python学习第170节--Linux文件管理系统实际操作和具体介绍

【每天几分钟,从零入门python编程的世界!】上节我们简单了解了Linux文件管理系统,现在我们学习它的实际操作。首先我们解释下~和/的区别。~之前我们介绍过,我们说~是Linux系统的根目录,其实这个说法是不准确的&#xf…

redis 计数器 java_Redis 的 8 大应用场景!

之前讲过Redis的介绍,及使用Redis带来的优势,这章整理了一下Redis的应用场景,也是非常重要的,学不学得好,能正常落地是关键。下面一一来分析下Redis的应用场景都有哪些。1、缓存缓存现在几乎是所有中大型网站都在用的必…

预测分析算法的设计与实现_基于LD(编辑距离算法)的单词速记数据库分析设计与实现...

2020-21-1学期《最新数据库管理系统》结课作业展示。作者:牟伦利 褚四浩 陈思琴 曹鹏飞(电商11802)分工陈思琴:系统需求分析 、系统相关算法分析和ER图曹鹏飞:系统数据字典 、业务流程图、数据流程图和PPT制作牟伦利:存储过程、触…

matlab knnsearchidx,matlab查找最临近搜索knnsearch

[Idx,D] knnsearch(___) additionally returns the matrix D, using any of the input arguments in the previous syntaxes. D contains the distances between each observation in Y and the corresponding closest observations in X.使用先前语法中的任何输入参数返回矩阵…

php导出excel数据代码,phpspreadsheet导出数据到Excel的方法介绍(代码示例)

本篇文章给大家带来的内容是关于phpspreadsheet导出数据到Excel的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。之前我们使用PHP导出Excel数据时使用的是PHPExcel库,但是phpoffice已经官方宣…

linux php不能写文件内容,php 在linux系统下写出文件问题

最近写了一个简单的生成文件,服务器用的linux 但是在将文件写出到路径的时候就会写出一个其他的文件夹其中一些代码如下define("paddy",dirname(__FILE__));$gkrequest_uri();$filepathpaddy.$gk;createfile($filefath,$file);//$f…