目录
前言
本篇文章主要介绍Java中对properties文件的读取,那么什么是properties文件呢?Java中有一个
Properties类,部分源代码如下:
public class Properties extends Hashtable<Object,Object> {...} public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable {...}
这个类间接实现了Map接口,它是一个集合。它的内部是以键值对的形式存储的。properties文件存储的也是一个个的键值对。
读写文件
先来读properties文件:
//创建一个输入流对象 try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\Users\\admin\\Desktop\\AAA.properties"))) { //创建出Properties类的对象 Properties props = new Properties(); //调用load()方法,传入输入流对象 props.load(bis); //根据键,获取值 System.out.println(props.get("kr")); //打印出读到的properties文件的内容 System.out.println(props); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
首先,依然要创建一个输入流对象。然后创建出Properties类的对象。然后调用load()方法,此方法相当于是集合类和文件之间的桥梁。Properties类对象就能在文件流中读到properties文件的内容。
下面是将内容写入properties文件:
//创建出Properties对象,并存入要写入的键值对 Properties p = new Properties(); p.put("赵", "120"); p.put("钱", "120"); p.put("孙", "120"); p.put("李", "120"); //创建出输出流对象 try (BufferedOutputStream bos1 = new BufferedOutputStream(new FileOutputStream("C:\\Users\\admin\\Desktop\\AAA!.properties"))) { //调用store()方法,通过输出流将键值对写入文件 p.store(bos1, "just do it!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
创建出Properties对象后,调用put方法添加我们要写入的键值对到集合中。然后创建出一个输出流对象。调用store()方法,传入输出流对象。就能通过输出流将内容写入properties文件。
总结
properties文件存放的是一个个的键值对,读写操作应该要让Properties类和输入流,输出流结合起来完成。
虽然properties文件可以只用输入流和输出流来完成文件的读写,但是这样会破坏该文件本来存放的键值对。不建议使用这样读取properties文件!