最近在写一个项目,涉及到很多的基本数据,比如网站标题,网站每页显示条数等等,之前的项目都是使用的 数据库 存放的原则,但是后来想想,这些数据可能很少会出现修改,所有就想着,直接用一个配置文件就可以搞定。然后就自己琢磨了一下,下面上方案。
首先看一下我的文件目录
其中两个绿色的,一个是 webseting.properties 一个是 WebSettingUtil.java
我们先写一下配置文件的内容
xxx=222 zzz=333 yyy=111
下面是一个公共类
package com.bihucms.ssm.util;import java.io.BufferedInputStream;import java.io. FileInputStream ;import java.io.FileOutputStream;import java.io.InputStream;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Properties;/** * Created by benhailong on 2017/10/4. */public class WebSettingUtil { // 读取文件 public static Map<String,String> read(String path){ Map<String,String> webset = new HashMap<String,String>(); Properties prop = new Properties(); try{ //读取属性文件a.properties InputStream in = new BufferedInputStream (new FileInputStream(path)); prop.load(in); ///加载属性列表 Iterator<String> it = prop.stringPropertyNames().iterator(); while(it.hasNext()){ String key=it.next(); webset.put(key,prop.getProperty(key)); } in. close (); } catch(Exception e){ System.out.println(e); } return webset; } // 修改 // 必须把原有的参数全部带全,否则会出现读取错误 public static void write(Map<String,String> map,String path,String note){ Properties prop = new Properties(); try{ ///保存属性到 配置文件 FileOutputStream oFile = new FileOutputStream(path, false );//true表示追加打开 false标识重写 for (Map.Entry<String,String> entry : map.entrySet()) { prop.setProperty(entry.getKey(),entry.getValue()); } prop.store(oFile, note); oFile.close(); } catch(Exception e){ System.out.println(e); } }}
调用
public static void main(String[] args) { String path = "src/main/resources/webseting.properties"; // 读取文件// Map<String,String> webset = read();// System.out.println("读取到的:"+webset.get("setingDays")); // 写入配置文件 Map<String,String> webset = new HashMap<String,String>(); webset.put("yyy","111"); webset.put("xxx","222"); webset.put("zzz","333"); write(webset,path,"这里是备注"); }
其他文件调用
public static void main(String[] args) { String path = "src/main/resources/webseting.properties"; Map<String,String> webset = WebSettingUtil.read(path); System.out.println("读取到的:"+webset.get("xxx")); System.out.println("读取到的:"+webset.get("yyy")); System.out.println("读取到的:"+webset.get("zzz")); }
结果