当前位置: 首页 > news >正文

章节六、3-读取Properties属性文件

一、如何读取Properties文件
1、创建一个名为ReadingProperties的类

2、创建一个.propertise属性的文件,创建的方式参考“二”中步骤

3、写入如下代码

package introduction8;

import java.io.FileInputStream;
import java.nio.file.Path;
import java.util.Properties;

//读取java中的属性文件,java中有一个写好的类,名叫Properties
/*Properties是一个配置文件,主要作用是通过修改配置文件可以方便的修改代码中的参数,
 * 不用改.class文件就可以灵活的变更参数,.java文件编译为.class文件以后,无法通过
 * 反编译找到原文件,那么,在java类中某个参数变更就很难灵活的实现参数的修改,当如果通过
 * properties就可以实现修改,减少代码的维护成本,提高开发的效率。
 */
public class ReadingProperties {

    public static void main(String[] args) {
    //后面的路径为创建的.properties属性的文件路径
        String path = "C:\\Users\\Administrator\\eclipse-workspace\\JavaTutorial\\src\\introduction8\\test.propertise";
    //创建一个Properties对象
        Properties prop = new Properties();
    //需要用到文件读取流这个类,创建一个文件读取流对象,用于读取本地文件中的字节数据
        FileInputStream fs = new FileInputStream(path);
    }

}

在eclipse中下面的代码会出现异常,自检未通过:

鼠标移动到报错的代码上显示如下

此处直接抛出异常

4、终极代码:

package introduction8;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.Path;
import java.util.Properties;
import java.util.jar.Attributes.Name;

//读取java中的属性文件,java中有一个写好的类,名叫Properties
/*Properties是一个配置文件,主要作用是通过修改配置文件可以方便的修改代码中的参数,
 * 不用改.class文件就可以灵活的变更参数,.java文件编译为.class文件以后,无法通过
 * 反编译找到原文件,那么,在java类中某个参数变更就很难灵活的实现参数的修改,当如果通过
 * properties就可以实现修改,减少代码的维护成本,提高开发的效率。
 */
public class ReadingProperties {

    public static void main(String[] args) throws IOException {
    //后面的路径为创建的.properties属性的文件路径
        String path = "C:\\Users\\Administrator\\eclipse-workspace\\JavaTutorial\\src\\introduction8\\test.propertise";
    //创建一个Properties对象
        Properties prop = new Properties();
    //需要用到文件读取流这个类,创建一个文件读取流对象,用于读取本地文件中的字节数据
        FileInputStream fs = new FileInputStream(path);
    /*输入流中读取属性列表,读取InputStream文件,上面创建对象时将异常直接抛出,
         因此此处也会报异常,直接抛出异常
    */
        prop.load(fs);
    //用Properties中的getProperty方法在file中用指定的键,搜索值
        System.out.println(prop.getProperty("name"));
        System.out.println(prop.getProperty("course"));

    }

}

打印结果为,成功读取到属性文件中的值:

 

二、创建FIile文件

eclipse中创建一个文件:File---》NEW---》File---》在File name中输入文件名(文件名必须用.propertise,否则读取会出错)为后缀,本文演示中取名为test.propertise---》Finish。

 

三、如何定义FIile文件

使用键值对的形式

左边是键,右边是值,代码中如果想访问java这个值的话,直接访问course就可以了,我们也可以很方便的将java这个值改变,列如改为Python,那么代码在调用course这个键时,访问就会由java变为Python这个值,这样就能灵活的修改参数值了。

 

转载于:https://www.cnblogs.com/luohuasheng/p/9663168.html

相关文章:

  • Qt读写ini文件
  • js的Date.parse()方法和getTime()的坑
  • 图像匹配之欧式距离算法(转)
  • OSS图片 数据处理持久化 JAVA实现
  • 微服务之excel导出
  • [LeetCode] 93. Restore IP Addresses 复原IP地址
  • node.js 事件处理模式
  • BZOJ4939 [YNOI2016]掉进兔子洞
  • HDU 2010 水仙花数
  • 题解 P1494 【[国家集训队]小Z的袜子】
  • JQuery Mobile - 解决切换页面时,闪屏,白屏等问题
  • codeforce round#511
  • HDU 5763 Another Meaning (KMP/哈希+DP)
  • 阻止冒泡,阻止默认事件
  • eclipse安装详解以及遇到的问题
  • Angular4 模板式表单用法以及验证
  • CAP 一致性协议及应用解析
  • echarts花样作死的坑
  • go append函数以及写入
  • HTTP请求重发
  • Mocha测试初探
  • Zepto.js源码学习之二
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 观察者模式实现非直接耦合
  • 如何使用 JavaScript 解析 URL
  • 使用common-codec进行md5加密
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 微信小程序实战练习(仿五洲到家微信版)
  • 一、python与pycharm的安装
  • 异常机制详解
  • 06-01 点餐小程序前台界面搭建
  • Hibernate主键生成策略及选择
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • # Java NIO(一)FileChannel
  • $refs 、$nextTic、动态组件、name的使用
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (7)STL算法之交换赋值
  • (C++20) consteval立即函数
  • (初研) Sentence-embedding fine-tune notebook
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (十八)三元表达式和列表解析
  • (算法)前K大的和
  • (转)winform之ListView
  • .gitignore文件---让git自动忽略指定文件
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET CF命令行调试器MDbg入门(一)
  • .NET CLR基本术语
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core 中的路径问题
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net 提取注释生成API文档 帮助文档
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)