Java中封装配置文件(1)-使用Properties

BaseDao的封装以及db.properties配置文件获取 文章目录1. 继承上次的DBUtil的改写BaseDao封装1.1 针对数据库的executeQuery()的处理1.2 针对数据库的executeUpdate()的处理2.如何获取数据库连接 三种方式2.1 傻瓜式操作2.2 进行DBUtil的封装 在里面进行2.1操作2.3 获取db.properties 配置文件2.3.1 创建配置文件 简单的一3.数据库连接成功,实现登录4.总结 1. ... 阅读详情

  无论是有图形化的选项配置对话框,或者是系统提供的注册表,文本形式的本地配置文件依然是最牢靠、应用最广泛的配置信息保存形式。配置信息的一般模式就是一个配置项对应一个值,前者一般是个字符串,后者可能是数字或者字符串或者别的什么。在传统win32编程中有系统提供的api供我们解读.ini文件,后来也有操作注册表的封装好的api,在.net中更是有解读XML形式.config文件的现成方法。在Java中,对配置文件的使用进行封装也是十分有意义的。

  封装应该达到这样的效果:应用只管从配置信息进行按名读取值、设置值、保存等操作,而不需要关心具体以什么文件格式保存、如何解析。文件格式(纯文本?XML?数据库?)、IO方式(本地文件?远程文件?控制台流?)在封装类内部的变更,都不会影响应用对配置信息的感知。

  从键名-值的对应关系以及文件的存取,我们最容易想到的就是java.util.Properties对象,他是HashTable的子类,保存的就是很多组键名-值的对应二原组,并提供快速的查询和直接的从文件读取、保存为文件的方法。具体请参考相关文档,我们直接看程序。

  首先自定义一个异常:

//ConfigurationException.java
package configuration;

public class ConfigurationException extends Exception{
  public ConfigurationException(){}
  public ConfigurationException(String msg){
    super(msg);
  }
}

  然后是我们的封装类:

//Configuration.java
package configuration;
import java.io.*;
import java.util.*;
import configuration.*;

public class Configuration {
  private Properties config=new Properties();//记录配置项
  private String fn=null;//记录配置文件名

  //此构造方法用于新建配置文件
  public Configuration(){}

  //从指定文件名读入配置信息
  public Configuration(String fileName)
      throws ConfigurationException {
    try {
      FileInputStream fin = new FileInputStream(fileName);
      config.load(fin); //载入文件
      fin.close();
    }
    catch (IOException ex) {
      throw new ConfigurationException
          ("无法读取指定的配置文件:"+fileName);
    }
    fn=fileName;
  }

  //指定配置项名称,返回配置值
  public String getValue(String itemName){
    return config.getProperty(itemName);
  }

  //指定配置项名称和默认值,返回配置值
  public String getValue(String itemName,
                         String defaultValue){
    return config.getProperty(itemName,defaultValue);
  }

  //设置配置项名称及其值
  public void setValue(String itemName,String value){
    config.setProperty(itemName,value);
    return;
  }

  //保存配置文件,指定文件名和抬头描述
  public void saveFile(String fileName,String description)
      throws ConfigurationException {
    try {
      FileOutputStream fout
          = new FileOutputStream(fileName);
      config.store(fout, description);//保存文件
      fout.close();
    }
    catch (IOException ex) {
      throw new ConfigurationException
          ("无法保存指定的配置文件:"+fileName);
    }
  }

  //保存配置文件,指定文件名
  public void saveFile(String fileName)
      throws ConfigurationException {
    saveFile(fileName,"");
  }

  //保存配置文件,采用原文件名
  public void saveFile() throws ConfigurationException {
    if(fn.length()==0)
      throw new ConfigurationException
          ("需指定保存的配置文件名");
    saveFile(fn);
  }
}

  从这个封装类我们可以看到,实例化对象的时候我们可以指定一个文件名使得从中读取配置信息,通过getValue方法取得属性值,setValue方法设置属性值,saveFile方法保存文件。然后我们具体来看看如何使用:

//SetConfig.java
import configuration.*;//包含这个包方能使用配置类
import java.io.*;

public class SetConfig {
  public static void main(String[] args) {
    try {
      Configuration config = new Configuration();
      //设置一些属性值
      config.setValue("Max_Users_Count", "50");
      config.setValue("Max_OpenedFile_Count", "20");
      //保存文件
      config.saveFile("system.conf",
                      "Sytem Global Configuration");
    }
    catch (ConfigurationException ex) {
      //捕获我们自定义的异常
      ex.printStackTrace();
    }
  }
}

  这段程序新建了一个配置,设置了两个配置项:Max_Users_Count为50;Max_OpenedFile_Count为20。最后将这个配置保存为system.conf文件,并加入抬头注释"Sytem Global Configuration"。执行之后,在程序所在目录下产生了一个system.conf文件,我们用纯文本编辑器打开看看内容到底是什么:

#Sytem Global Configuration
#Mon Aug 02 23:43:39 PDT 2004
Max_OpenedFile_Count=20
Max_Users_Count=50

  可以看到,第一行写入了我们加入的抬头注释,第二行自动产生了一个时间,后面两行用<配置项名称>=<配置值>的形式记录了配置信息。下面我们来读取这个配置文件:

//ReadConfig.java
import configuration.*;

public class ReadConfig {
  public static void main(String[] args) {
    try {
      //读取指定文件
      Configuration config
          = new Configuration("system.conf");
      //获取特定值
      System.out.println
          (config.getValue("Max_Users_Count") +
          " users can be actived at the same time");
     //指定默认值
     System.out.println
          (config.getValue("Max_OpenedFile_Count", "10") +
          " files can be opened at the same time");
    }
    catch (ConfigurationException ex) {
      ex.printStackTrace();
    }
  }
}

  系统输出了

50 users can be actived at the same time
20 files can be opened at the same time
这样的信息。表明我们成功读取了配置信息。

  这样我们的封装类可以胜任普通的配置信息操作工作了。而且对于大多数的情况,这个类也足够用了。这里的代码都是可复用的,大家可以直接拷贝到自己的工程中去。最后说明:这些属性值当然可以自己在文件里面改动,而且这也是配置文件最常见的使用方式;#号开头的都表示注释,可以任意添加和删除。

  任务完成了,但是还并不完美。采用Properties最大的方便就是有现成的查询、设置、文件存取方法,但是这样的<配置项名称>=<配置值>格式只是方便了在Java中的使用,考虑到系统将来的扩展性或者开发平台的迁移,都是欠妥的。下一次我们来试试利用DOM封装XML格式的配置文件。

 

python轮胎缺陷检测_基于深度学习的轮胎缺陷无损检测与分类技术研究 基于深度学习的轮胎缺陷无损检测与分类技术研究【摘要】:随着汽车行业快速发展及汽车保有量的持续增长,大大增加了对轮胎的需求,而轮胎质量在很大程度上决定了轮胎的使用寿命,也是在行驶过程中对人们生命财产安全的保障,同时对轮胎进行在线质量检测也便于轮胎生产企业及时发现生产线中存在的不合格产品,以此来调整机械设备甚至轮胎的生产工艺,避免造成生产材料的浪费。因此,检测轮胎质量是轮胎生产过程中必不可缺少的一部分... 阅读详情

相关推荐

Python爬虫实战:用Selenium+ChromeDriver批量抓取政府网站政策文件(附完整代码)

本文详细介绍了使用Python的Selenium和ChromeDriver进行政府网站政策文件批量抓取的实战技巧。从环境配置、动态页面元素定位到分页机制破解和反爬虫策略,提供了完整的解决方案和代码示例,帮助开发者高效获取结构化政策数据。

weixin_42531710的博客 238

exe4j对Jar包进行exe封装.zip

Exe4j对Jar包进行exe封装。 exe4j是一个帮助你集成Java应用程序到Windows操作环境的java可执行文件生成工具,无论这些应用是用于服务器,还是图形用户界面(GUI)或命令行的应用程序。如果你想在任务管理器中及Windows XP分组的用户友好任务栏里以你的进程名取代java.exe的出现,那么exe4j可以完成这个工作。exe4j帮助你以一种安全的方式启动你的 java应用程序,来显示本地启动画面,检测及发布合适的JRE和JDK,以及进行启动时所发生的错误处理等。

配置文件封装

配置文件封装类// Ini.h: interface for the CIni class. // // Written by Bjarke Viksoe (bjarke@viksoe.dk) // Copyright (c) 2000. // // This code may be used in compiled form in any way you desire. This // file may be redistributed by any means PROVIDING it is // not sold for profit without the authors written consent, and // providing that this notice and the authors name is included. // // This file is provided "as is" with no expressed or implied warranty. // The author accepts no liability if it causes any damage to you or your // computer whatsoever. It's free, so don't hassle me about it. // // Beware of bugs.

springboot jsonobject依赖_牛批了!三分钟用SpringBoot封装自己的Starter

一.说明我们在使用SpringBoot的时候常常要引入一些Starter,例如spring-boot-starter-web,官方为我们提供了几乎所有的默认配置,很好的降低了使用框架时的复杂度。所以在用xxx-starter的时候,可以不用费心去写一些繁琐的配置文件,即使必要的配置在application.properties或application.yml中配置就可以了,当你实现了一个Start...

weixin_35225189的博客 2857

Java封装 properties文件操作

/** * Prop. Prop can load properties file from CLASSPATH or File object. */ public class Prop { private Properties properties = null; /** * Prop constructor. *...

weixin_30512043的博客 207

java:java.util.Properties的便利性封装

java.util.Properties是个常用的类,主要用于保存参数,从文件中加载配置参数,为了更方便使用,可以对它做进一步的封装。 下是面封装后的类Configuration,增加了以下方法: getProperty(String)系列方法 getProperty(String key, defaultValue)系列方法

10km的专栏 1239

Java封装配置文件使用Properties

无论是有图形化的选项配置对话框,或者是系统 提供的注册表,文本形式的本地配置文件依然是最牢靠、应用最广泛的配置信息保存形式。配置信息的一般模式就是一个配置项对应一个值,前者一般是个字符串, 后者可能是数字或者字符串或者别的什么。在传统win32编程中有系统提供的api供我们解读.ini文件,后来也有操作注册表的封装好的api,在. net中更是有解读XML形式.config文件的现成方法。在J

wfy_928的专栏 561

java怎么读取properties文件、修改properties文件和封装properties

什么是Properties文件,Properties文件和XML一样是java中经常使用到的一种配置文件,读取和使用起来比较方便,并且可读性好。我们在编写代码的过程中为了将代码提高可参数化经常会将一些配置属性存放在我们的配置文件中,例如JDBC的URL、用户名、密码等甚至一些文件路径或者是一些常用的参数。这样我们当数据库发生改变的时候就不需要改原有的代码了。 Properties文件的特点就是Ke...

柳轻声的博客 2675

Java封装配置文件(1)-使用Properties ()

6green教育资讯网    2004-08-15 02:51 无论是有图形化的选项配置对话框,或者是系统提供的注册表,文本形式的本地配置文件依然是最牢靠、应用最广泛的配置信息保存形式。配置信息的一般模式就是一个配置项对应一个值,前者一般是个字符串,后者可能是数字或者字符串或者别的什么。在传统win32编程中有系统提供的api供我们解读.ini文件,后来也有操作注册表的封装好的api,在.ne

hyde82的专栏 1146

java读取配置文件的详细写法_Java 读取、获取配置文件.properties中的数据

java获取配置文件.properties中的数据,具体内容如下所示:方法太多,只写一种比较简单的。文件test1.properties内容test1 = 123;test2=3211Properties prop = new Properties();prop.load(new FileInputStream("src/test1.properties"));System.out.println...

weixin_30340109的博客 184

java连接MySQL几种方法_java有几种连接mysql的方式?分别是什么?

java连接mysql有五种方式,分别是:(学习视频分享:java教学视频)第一种方式:将用户名和密码封装Properties类中首先,导入数据库连接包这个是毋庸置疑的。创建一个jdbc驱动dirver。将数据库(以MySQL为例)的url保存在所创建的字符串url中。如果mysql版本低于8.0,则url保存形式应该为:String url = "jdbc:mysql://localhost:...

weixin_42356315的博客 696

java连接mysql数据库的五种方式

Jbdc-----数据库的五种连接方式 第一种方式:将用户名和密码封装Properties类中 首先,导入数据库连接包这个是毋庸置疑的。创建一个jdbc驱动dirver。将数据库(以MySQL为例)的url保存在所创建的字符串url中。如果mysql版本低于8.0,则url保存形式应该为: String url= "jdbc:mysql://localhost:3306/t...

Python研究所 334

Java 读取配置文件路径与中文乱码问题全解析

本文深入探讨了Java开发中读取配置文件的两大常见问题及解决方案。针对路径问题,推荐将配置文件放置在resources目录下并通过类加载器读取,避免相对路径带来的不确定性;对于中文乱码问题,分析了Properties类默认使用ISO-8859-1编码导致的问题,提供了三种解决方案:使用UTF-8编码读取(推荐)、native2ascii转码传统方案以及改用YAML/JSON格式。文章还给出了工具类封装示例和常见问题排查方法,建议开发者采用classpath读取+UTF-8编码的最佳实践,并封装统一工具类以提

weixin_42164754的博客 361

java封装一个操作properties配置文件的类

package cn.tools; import java.io.*; import java.util.Properties; public class ProUtil { private final Properties prop; private final String filePath; //构造方法 public ProUtil(String string) { this.filePath = string; this.p.

qq_40308101的博客 3641

Properties引入配置文件

1.Properties如何创建? eclipse中:new->file->输入名称 2.Properties创建范例。 JDK中查询Properties可以看出,Properties继承Hashtable,所以Properties的格式也是键对应值。 driverClassName:驱动 url:数据库位置 username:数据库账户名 password:我的数据库密码 3.如何调用配置文件Properties? 我之前在工具类的封装使用了静态代码块来封装驱动的加载,现

zh_tnis的博客 1839

JAVA读取classess下的.properties配置文件封装

/**  * @filename       : PropertiesUtil.java  * @description    : TODO  * @author         : penglong  * @create         : 2015-6-13 下午03:01:21  * @copyright      : mall Corporation 2015  *  * M

Codelong的专栏 2729

springboot加载特定的properties配置文件

加载类路径下的全部/特定前缀的properties文件: import org.springframework.beans.factory.config.PropertiesFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import java.io.IOExcep

commonBean的专栏 1163

cloud-pacs-api:PostDICOM是具有在线DICOM Viewer功能的Cloud PACS

PostDICOM Cloud PACS API PostDICOM是一种基于云的软件服务,用于存档和查看从医学成像设备(例如超声成像,MRI,CT,射线照相,核成像等)获得的图像。 PostDICOM支持使用DICOM(医学数字成像和通信)协议在云环境中执行PACS(图像存档和通信系统)的所有常规功能–存储,访问和共享您的医学成像文件。 这消除了对基于硬件的存储的需求,从而降低了成本并进一步优化了医学成像归档系统。PostDICOM Cloud API文档软件公司可以使用自己的界面通过PostDICOM Cloud API调用来调用PostDICOM服务。 这些API调用包括上载,搜索,查看和删除DICOM图像和临床文档。 您可以通过链接。PostDICOM Cloud API实时演示您可以通过链接访问。 下面提供了一些API屏幕快照。 您可以自定义用户界面并嵌入到现有软件中

上一篇: Java小段子-File对象递归删除目录下所有内容
下一篇: 昨天开始新东方了
oxware
博客等级 码龄24年 3粉丝 61原创
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值