All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.sowjz.search.common.util.PropsLoader Maven / Gradle / Ivy


package cn.sowjz.search.common.util;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.StringReader;
import java.util.Properties;

import cn.sowjz.search.common.ByteBuff;

public class PropsLoader 
{
	 public static Properties loadFromFile(String filename)throws Exception
	 {
		 return loadFromFile(new FileInputStream(filename),null);
	 }
	 
	 public static Properties loadFromFile(InputStream ins)throws Exception
	 {
		 return loadFromFile(ins,null);
	 }
	 
	 public static Properties loadFromFile(String filename,Properties parent)throws Exception{
		 return loadFromFile(new FileInputStream(filename),parent);
	 }
     
	 
     public static Properties loadFromFile(InputStream ins ,Properties parent)throws Exception
     {
    	 ByteBuff bb=FileUtil.readToByteBuffer(ins);
 		String encoding="GBK";
 		if(CharsetUtil.isUtf8(bb))
 		{
 			encoding="UTF8";
 		}	
 		
 		
 		Properties props=new Properties();
	 	 BufferedReader in=new BufferedReader( new StringReader(bb.toString(encoding)));

		
		String line=in.readLine();
		while(line!=null)
		{
			line=line.trim();
			if(line.length()>0 && line.charAt(0)!='#')
			{
				int p=line.indexOf("=");
				if(p>0 )
				{
					if(p!=line.length()-1)
					{	
					  String k=line.substring(0,p).trim();
					  String v=line.substring(p+1).trim();
					  v=valueReplace(v,parent,props);
					  props.put(k,v);
					}else
						 props.put(line.substring(0,p),"");
				}	
			}	
			line=in.readLine();
		}	
		in.close();
		return props;
     }

	private static String valueReplace(String v, Properties props1,Properties props2) throws Exception
	{
		if(props1==null)
			return v;
		
		if(v.indexOf("%")<0)
			return v;
		StringBuffer strb=new StringBuffer();
		
		for(int i=0;i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy