Java的Properties类和读取.properties文件

一、.properties文件的作用

  Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件。它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必要使用数据库文件来保存,而使用一般的文本文件来保存,如果是通过File直接保存的话,可能在存储和读取上都不是很方便,但如果保存为Properties文件就不一样了,属性文件都有键值对应的,在JAVA的包中,有提供专门的操作属性文件的类。这个类就是 java.uitl.Properties类,由于Properties类是一个集合类,所以,Properties会将属性以集合的方式读写。(配置文件有两种:XML和.properties文件)

  在Java中,.properties文件的内容格式是"键-值"的格式,文本的注释信息可以用"#"来注释。

二、Java Properties类

Properties类继承自Hashtable,如下:

它提供的主要方法:

  1. getProperty(String key):用指定的键在此属性列表中搜索属性。也就是通过key得到对应的value
  2. load(InputStream inStream):通过对指定文件进行装载来获得(键-值)对,以供getProperty()调用。
  3. setProperty(String key,String value):调用基类的put方法来设置键-值对
  4. store(OutPutStream out,String comments):将键-值对按照文件的格式写入到指定文件中
  5. clear():清除所有转载的键-值对

三、读取.properties文件

db.properties

url = "jdbc:mysql://localhost:3306/test"
username="root"
name="root"

第一种:使用ServletContext的getResourceAsStream方法:返回资源文件的读取字节流

public  void test1() throws IOException{
        InputStream in=this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
        Properties props=new Properties();
        props.load(in);
        String url=props.getProperty("url");
        String username=props.getProperty("username");
        String password=props.getProperty("password");

        System.out.println(url);
        System.out.println(username);
        System.out.println(password);
    }

第二种:使用ServletContext的getRealPath方法,获得文件的完整绝对路径path,再使用字节流读取path下的文件

public void test2() throws IOException{
        String path =this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");
        FileInputStream in=new FileInputStream(path);
     ////相比第一种方法的好处是:除了可以获取数据,还可以获取资源文件的名称
        String filename=path.substring(path.lastIndexOf("\\")+1);
        System.out.println(filename);
        Properties props=new Properties();
        props.load(in);
        String url=props.getProperty("url");
        String username=props.getProperty("username");
        String password=props.getProperty("password");
        System.out.println(url);
        System.out.println(username);
        System.out.println(password);
    }
时间: 2024-10-14 10:47:20

Java的Properties类和读取.properties文件的相关文章

Properties类与读取properties文件

Properties类 在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用"#"来注释. 这个类的几个常用的方法: 1.getProperty ( String key),用指定的键在此属性列表中搜索属性.也就是通过参数 key ,得到 key 所对应的 value. 举个例子,比如要搜索"PORT"对应的值,getProperty ("PORT") 返回的值就是prop

(转)java 从jar包中读取资源文件

(转)java 从jar包中读取资源文件 博客分类: java 源自:http://blog.csdn.net/b_h_l/article/details/7767829 在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码:Java代码 [java] view plaincopy //源代码1: package edu.hxraid; import java

java查找重复类/jar包/普通文件

开发web应用时,有时更新了类却没有生效,其实是因为jboss/tomcat中其他发布包下有同名类(包括全路径都相同). 于是萌发了做个程序来检查指定目录是否存在重复类(通过asm从类文件中取类的全路径),扩展开来,还支持查找重复的文件(按文件md5进行比较),重复的jar文件. 主要代码如下: 简单测试代码: package cn.jerryhouse.util.dup_files.test; import java.io.File; import org.junit.Test; import

Java实现动态加载读取properties文件

问题: 当我们使用如下语句加载.properties时: ClassLoader classLoader = this.getClass().getClassLoader(); Properties prop = new Properties(); prop.load(classLoader.getResourceAsStream("/Application.properties")); 会发现修改了.properties后,即使重新执行,读入的仍为修改前的参数.此问题的原因在于Cla

Java或者JAR包获取读取资源文件的路径的问题总结

这里分为具体两种: 第一种:资源文件为一般后缀文件 第二种:资源文件为图片文件 [NO1]第一种 使用这行代码可以获取class类的根目录的路径 String path =Thread.currentThread().getContextClassLoader().getResource("").getPath(); 例子:我用的开发软件MyEclipse 6.5 假设项目文件夹如下: files---bin--core(生成class包) |               |     

java 从jar包中读取资源文件

在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码:Java代码 [java] view plaincopy //源代码1: package edu.hxraid; import java.io.*; public class Resource { public  void getResource() throws IOException{ File fil

JAVA之NIO按行读取大文件

做项目过程中遇到要解析100多M的TXT文件,并入库.用之前的FileInputStream.BufferedReader显然不行了,虽然readLine这方法可以直接按行读取,但是去读一个140M左右,68W条数据的文件时,不但耗时长而且会内存溢出,即你等不到读完68W条数据时就内存溢出了.所以得用NIO下面的相关对象及方法. 用到 字节缓冲区(Java.nio.ByteBuffer);用于读取.写入.映射和操作文件的通道( java.nio.channels.FileChannel);设置文

一个简单的spring 程序(如何在java类中读取Properties配置文件)

首先是个User类: package spring_introduction;public class User {String name; public String getName() {return name;} public void setName(String name) {this.name = name;}public void hello(){System.out.println("hello "+name);}} 配置文件Name.properties name=L

Java在Web项目中读取properties文件

1 import java.io.FileNotFoundException; 2 import java.io.IOException; 3 import java.io.InputStream; 4 import java.sql.SQLException; 5 import java.util.Properties; 6 7 import javax.sql.DataSource; 8 9 import com.alibaba.druid.pool.DruidDataSourceFacto