- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章浅谈Java中Properties类的详细使用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Properties 类位于 java.util.Properties ,是Java 语言的配置文件所使用的类, Xxx.properties 为Java 语言常见的配置文件,如数据库的配置 jdbc.properties, 系统参数配置 system.properties。 这里,讲解一下Properties 类的具体使用。 以key=value 的 键值对的形式进行存储值。 key值不能重复.
继承了Hashtable 类,以Map 的形式进行放置值, put(key,value) get(key) 。
主要方法
这里只讲解一些常用的形式.
JVM 中可以获取Properties, 来打印输出 JVM 所了解的属性值。 用list() 方法,打印到控制台.
@Testpublic void printTest(){ Properties properties=System.getProperties(); properties.list(System.out);}
常见的有
在src 目录下,放置 jdbc.properties 文件,是数据库的配置文件.
jdbc.driver=com.mysql.jdbc.Driver 。
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8 。
jdbc.username=root 。
jdbc.password=abc123 。
@Testpublic void name1Test(){ try{ Properties properties=new Properties(); //用的是磁盘符的绝对路径 InputStream input=new BufferedInputStream(new FileInputStream("D:workspaceJavaLearnsrcjdbc.properties")); properties.load(input); properties.list(System.out); }catch(Exception e){ e.printStackTrace(); }}
url 被截取了.
@Testpublic void name2Test(){ try{ Properties properties=new Properties(); // 用/文件名, / 表示根目录 InputStream input=PropertiesTest.class.getClass().getResourceAsStream("/jdbc.properties"); properties.load(input); Enumeration<String> names=(Enumeration<String>) properties.propertyNames(); while(names.hasMoreElements()){ //这是key值 String key=names.nextElement(); String value=properties.getProperty(key); System.out.println(key+"="+value); } }catch(Exception e){ e.printStackTrace(); }}
@Testpublic void name3Test(){ try{ Properties properties=new Properties(); //直接写src 类路径下的文件名 InputStream input=PropertiesTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); properties.load(input); //把key值转换成set 的形式,遍历set Set<String> names=properties.stringPropertyNames(); Iterator<String> iterator=names.iterator(); while(iterator.hasNext()){ String key=iterator.next(); String value=properties.getProperty(key); System.out.println(key+"="+value); } }catch(Exception e){ e.printStackTrace(); }}
@Testpublic void name3Test(){ try{ Properties properties=new Properties(); InputStream input=PropertiesTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); properties.load(input); //String value=properties.getProperty("jdbc.url"); String value=properties.getProperty("jdbc.url1","没有该key值"); System.out.println("输出值:"+value); }catch(Exception e){ e.printStackTrace(); }}
输出时,getProperty() 有当前的key值,则输出Key值对应的value 值。 如果没有key值,则输出 null 值。 后面可以跟 default 值,如果没有该值,则输出设置的默认值.
@Testpublic void writeTest(){ try{ Properties properties=new Properties(); InputStream input=PropertiesTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); properties.load(input); //多添加几个值。 properties.setProperty("name","两个蝴蝶飞"); properties.setProperty("sex","男"); //properties.put("name","两个蝴蝶飞"); 可以用继承Hashtable 的put 方法写入值 // properties.put("sex","男"); //将添加的值,连同以前的值一起写入 新的属性文件里面。 OutputStream out=new FileOutputStream("D:jdbc.properties"); properties.store(out,"填充数据"); }catch(Exception e){ e.printStackTrace(); }}
在构建输入流和输出流时,指定编码格式, 编码的格式相同。 如均是 utf-8的形式.
@Testpublic void write2Test(){ try{ Properties properties=new Properties(); //用绝对路径 InputStream input=new BufferedInputStream(new FileInputStream("D:workspaceJavaLearnsrcjdbc.properties")); properties.load(new InputStreamReader(input,"utf-8")); //多添加几个值。 properties.setProperty("name","两个蝴蝶飞"); properties.setProperty("sex","男"); OutputStream output=new FileOutputStream("D:jdbc.properties"); OutputStreamWriter out=new OutputStreamWriter(output,"utf-8"); properties.store(out,"填充数据"); }catch(Exception e){ e.printStackTrace(); }}
测试运行之后
这样便解决了乱码的问题.
将Properties 类中定义的属性,导出成 .xml 的形式. 。
@Testpublic void xmlWriteTest(){ try{ //处理成编码样式。 Properties properties=new Properties(); //多添加几个值。 properties.setProperty("name","两个蝴蝶飞"); properties.setProperty("sex","男"); OutputStream output=new FileOutputStream("D:jdbc.xml"); //编码设置成utf-8的形式。 properties.storeToXML(output,"填充到xml","utf-8"); }catch(Exception e){ e.printStackTrace(); }}
测试结果为
用 <entry> 节点 key为属性, 后面跟值来进行输入。 可按照这种形式,继续添加.
@Testpublic void xmlReadTest(){ try{ Properties properties=new Properties(); InputStream input=new BufferedInputStream(new FileInputStream("D:jdbc.xml")); properties.loadFromXML(input); properties.list(System.out); }catch(Exception e){ e.printStackTrace(); }}
以上就是浅谈Java中Properties类的详细使用的详细内容,更多关于Java Properties的资料请关注我其它相关文章! 。
原文链接:https://blog.csdn.net/yjltx1234csdn/article/details/93769032 。
最后此篇关于浅谈Java中Properties类的详细使用的文章就讲到这里了,如果你想了解更多关于浅谈Java中Properties类的详细使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
目录 进程 其他相关概念 创建线程的两种方式 为什么使用start()方法而不直接使用run()方法 start()方法底层
CURL状态码列表 状态码 状态原因 解释 0 正常访问
ODBC连接类函数 odbc_connect函数:打开一个ODBC连接 odbc_close函数:关闭一个已经打开的ODBC连接 odbc_close_all函数:关闭所有已经打开的ODBC连
作为标题,如何计算从纪元1900到现在使用boost的持续时间? 编辑:很抱歉以前的问题太短。我将再次描述我的问题。 我有关于将生日另存为整数的问题。我创建了四个函数,用法如下: ptime转换为整数
前言 在Java中,有一个常被忽略 但 非常重要的关键字Synchronized今天,我将详细讲解 Java关键字Synchronized的所有知识,希望你们会喜欢 目录 1. 定义 J
详细 JVM 垃圾收集日志的时间戳是收集的开始还是结束? 2016-08-09T21:04:19.756-0400: 224890.317: [GC Desired survivor size 167
我在“Master-Detail”概念上苦苦挣扎,除了一点点(但很重要)的细微差别外,几乎所有东西都按预期工作。我应该在 Storyboard上更改什么以在详细信息 View (屏幕截图底部的右上角)
我希望能够显示表格的详细 View ,但不推送新屏幕,而只显示表格所在的详细 View 。 设置它的最佳方式是什么......如果真的可行的话? ---------------------------
我在我的博客中为我的帖子使用了详细 View ,每篇帖子都有评论,所以我想对它们进行分页,但我不知道该怎么做,因为我请求了帖子模型。我知道如何在功能 View 中执行此操作,但不知道如何在详细 Vie
在下面的代码中,与 pm 对齐,该行是否会 move 整个内存并将其分配给 pm,或者它只会 move p 指向的内存而不是整个数组? int main() { int*
1·下载 https://dev.mysql.com/downloads/mysql/ 2·安装服务 1)管理员运行cmd 2)D: 3)cd D:\mysql
今天以前一直用的SQL Server 2005做开发,偶尔也用MySQL,现入手公司项目,用到SQL Server 2008,于是乎必须安装它,免得出现其他很纠结的小问题,现将自己安装图解分享如下:
1. crontab命令选项 复制代码 代码如下: #crontab -u <-l, -r, -e> -u指定一个用
我们有一个 WPF 应用程序,它有一个主窗口/详细信息窗口,两者都是 WPF 数据网格。当您在上部数据网格中选择一行时,详细信息将显示在下部数据网格中。我想知道从 UI 的角度来看是否有任何关于如何处
在可视化 Perforce 客户端 (p4v) 中有一个选项: 显示文件操作的 p4 命令输出 启用后,在日志 Pane 中,我可以看到这样的详细日志记录: p4 sync /Users/az/ftp
在其他服务器上设置测试环境后,在几个API调用中出现错误。 99%肯定这是MySQL的事情,但是返回的错误根本没有帮助: global name 'sys' is not defined" 我已经导入
我正在维护一个通用的 iOS 应用程序,其开发已开始于 iOS 6。我正在为 iOS 7 更新 UI。现在我遇到了应用程序的 iPad 部分的奇怪问题。这部分遵循使用 UISplitViewContr
我希望我能正确描述这种情况。当它发生时很容易在屏幕上看到,但很难用语言解释,但我会尽力而为。 我有一个带有固定主视图 (UITableView) 和两个详细 View 之一的 UISplitViewC
我尝试在 eclipse 和 intelliJ 参数中使用垃圾收集记录器来配置简单的测试程序。尝试了不同类型的配置,但尚未创建日志文件。 -XX:+PrintGCDetails -XX:+PrintG
正如您所知,.cap 文件中的 java 小程序的输出文件格式必须通过智能卡读卡器/写卡器(如 ACR122 或任何其他读卡器)部署到 java 卡,而且我相信 java 卡与 java 卡之间的部署
我是一名优秀的程序员,十分优秀!