
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