一、.properties文件的作用
Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件。它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必要使用数据库文件来保存,而使用一般的文本文件来保存,如果是通过File直接保存的话,可能在存储和读取上都不是很方便,但如果保存为Properties文件就不一样了,属性文件都有键值对应的,在JAVA的包中,有提供专门的操作属性文件的类。这个类就是 java.uitl.Properties类,由于Properties类是一个集合类,所以,Properties会将属性以集合的方式读写。(配置文件有两种:XML和.properties文件)
在Java中,.properties文件的内容格式是"键-值"的格式,文本的注释信息可以用"#"来注释。
二、Java Properties类
Properties类继承自Hashtable,如下:
它提供的主要方法:
- getProperty(String key):用指定的键在此属性列表中搜索属性。也就是通过key得到对应的value
- load(InputStream inStream):通过对指定文件进行装载来获得(键-值)对,以供getProperty()调用。
- setProperty(String key,String value):调用基类的put方法来设置键-值对
- store(OutPutStream out,String comments):将键-值对按照文件的格式写入到指定文件中
- 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