2.2 Java.io.File更改
增加一个静态变量 private static HashMap filemaps=null;用来保存映射关系。
增加一个私有方法 initmaps初始化 filemaps
/**
* read filemap.propreties to initialize file map.
*/
private void initmaps(){
if(filemaps==null){
filemaps=new HashMap();
String filemap=System.getProperty("filemap");
//获得filemap.properties文件路径,需要在jvm运行时传入-Dfilemap=[filemap.properties全路径名],
不要试图使用 classloader.getResource(), 因为getResource里也会使用java.io.File,会产生jvm异常。
if(filemap==null || filemap=="")
return;
this.path = fs.normalize(filemap);
//准备读取filemap.properties文件。因为使用FileInputStream时,
需要传入一个java.io.File对象,在这暂 时把this.path设为filemap.properties的路径。
this.prefixLength = fs.prefixLength(this.path);
Properties pro=new Properties();
try {
pro.load(new FileInputStream(this)); //读取filemap.properties.
Enumeration enumeration=pro.propertyNames();
while(enumeration.hasMoreElements()){
String sourcepath=(String)enumeration.nextElement();
String targetpath=pro.getProperty(sourcepath);
filemaps.put(sourcepath, targetpath); //保存到filemaps静态对象里。
}
} catch(FileNotFoundException e1){
return;
} catch(IOException e2){
return;
}
}
}