/**
* Copyright @ 2013 transfar<br>
* All right reserved<br>
*/
package com;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Map.Entry;
/**
* 将R.properties里面对应的key替换代码中的value
* Class Name: TestMain<br>
* Description: 类功能说明<br>
* Sample: 该类的典型使用方法和用例<br>
* Author: fanggt<br>
* Date: 2013-7-2<br>
* --------------------------------------------------<br>
* 修改人 修改日期 修改描述<br>
* fanggt 2013-7-2 创建<br>
* --------------------------------------------------<br>
* @Version Ver1.0<br>
*/
public class TestMain {
/**
* 描述: <br>
* @param args<br>
* @throws Exception
* @throws FileNotFoundException
* @author:fanggt<br>
* @date:2013-7-2<br>
* --------------------------------------------------<br>
* 修改人 修改日期 修改描述<br>
* fanggt 2013-7-2 创建<br>
* --------------------------------------------------<br>
*/
public static void main(String[] args) throws FileNotFoundException, Exception {
String propFile = "src/change.properties";
Properties props = TestMain.loadR(propFile);
File ceilFile = new File(file3);
changeValue(ceilFile,props);
}
private static String file = "E:/androidWork/StartScreen/src/com/wbtech";
private static String fileName2 = "E:/R";
private static String file3 = "C:/Documents and Settings/Administrator/桌面/change.txt";
public static Properties loadR(String propFile) throws FileNotFoundException, IOException{
if(null == propFile){
propFile = "src/key.properties";
}
Properties props = new Properties();
props.load(new FileReader(propFile));
return props;
}
public static void changeValue(File file,Map props) throws Exception{
if(!file.exists()){
return;
}
if(file.isDirectory()){
File[] files = file.listFiles();
if(files.length>0){
for(File f:files){
changeValue(f,props);
}
}
}else if(file.isFile()){
String path = file.getPath();
BufferedReader br = new BufferedReader(new FileReader(file));
String tempFileName = file.getPath()+".bak";
File tempFile = new File(tempFileName);
if(!tempFile.exists()){
tempFile.createNewFile();
}
PrintWriter pw = new PrintWriter(tempFile,"UTF-8");
String temp = null;
StringBuffer buffer = new StringBuffer();
while((temp = br.readLine())!=null){
buffer.append(temp).append("\r\n");
}
String str = buffer.toString();
Iterator it = props.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Entry) it.next();
String key = (String) entry.getKey();
String value = (String) entry.getValue();
//str = str.replaceAll(value, key);
str = str.replaceAll(key, value);
}
pw.write(str);
br.close();
pw.flush();
pw.close();
file.delete();
File f = new File(path);
tempFile.renameTo(f);
File temp_tempFile = new File(tempFileName);
if(temp_tempFile.exists()){
temp_tempFile.delete();
}
}
}
}