getResourceAsStream

来源:互联网 发布:java分布式 编辑:程序博客网 时间:2024/06/15 04:56
1,getResourceAsStream为读取文件,返回的是inputStream类型的。是通过Class.class.getResourceAsStream(String path)
path必须以“/”开头,表示src下面。
如:InputStream inputStream=Class.class.getResourceAsStream("/message.properties");
message.properties这个配置文件式放在src下的,如果别的包下:/com/test/message.properties表示在com包下的test包下的message.properties


2,可以读取配置文件内容,然后将内容存放到map中
如:InputStream inputStream=Class.class.getResourceAsStream("/message.properties");
byte[] bytes=new byte[1024];
Map<String,Object> map=new HashMap<String,Object>();
int num=0;
try {
while((num=inputStream.read(bytes))>0){
String name=new String(bytes,0,num);
//System.out.println(name);
if(name.contains("\r\n")){
//System.out.println("1222222");
}
String[] nameList=name.split("\r\n");
//System.out.println(nameList.length);
for(int i=0;i<nameList.length;i++){
//System.out.println(nameList[i]);
String key_value=nameList[i];
if(!key_value.startsWith("#")){
if(key_value.indexOf("=")>0){
String key=key_value.split("=")[0];
String value=key_value.split("=")[1];
map.put(key,value);
}
}

}
}
System.out.println(map);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

通过read(byte,0,num)读取内容存放到byte中,
然后将byte存储到String类型中,
然后通过/r/n将其一行一行分开,
然后将注释的哪一行也找到,过滤掉。
然后通过将=分开,然后分别存储到map类型中。