用java程序读取js文件并修改属性的值(用json-lib读写js文件)

要读写js文件,没找到在web端读写的方法,所以弄了个后台的,希望有web端读写的方法的同学告诉我一下,感激不尽!

用java程序读写js文件:

使用的工具:json-lib

实例:


要修改的js文件内容:
define ( function (){ return {
"coordinator" : " 协调器 " ,
"gateway" : " 网关 " ,
"route" : " 路由 " ,
"config_param" :{//要修改这个键的值时, parentKey = "config_param"
"add" : " 新增 " ,
"edit" : " 编辑 " ,
"del" : " 删除 "
}
}});

代码:
/**
* 修改 js 文件
* @param filePath
* @param parentKey 要添加所在对象的键
* @param key 要添加 / 更新的键
* @param value 要添加 / 更新的键对应的值
*/
public static void rwJS(String filePath,String parentKey,String key,Object value){
try {
// 第一步先读入 js 中所有的内容放到 String
File file = new File(filePath);
InputStream stream = new FileInputStream(file);
InputStreamReader isreader = new InputStreamReader(stream);
// new FileReader(new File(file))
BufferedReader reader= new BufferedReader(isreader);
StringBuilder sb= new StringBuilder();
String line= null ;
while ((line=reader.readLine())!= null ){
// 把换行符去掉
sb.append(line);
}
reader.close();
String sub=sb.substring(sb.indexOf( "return" ),sb.lastIndexOf( "}" ));
String jsonString=sub.substring(sub.indexOf( "{" ),sub.lastIndexOf( "}" )+ 1 );
JSONObject jo= JSONObject. fromObject (jsonString);
// 获得属性用 jo.get(String key);
// 修改属性使用 jo.put(String key,Object value);
//jo. element (String key,Object value);put和element修改的key如果已存在,则更新value,不存在,则添加key和value
//jo.accumulate(String key,Object value);accumulate修改的key,会将新的value累加到对应key的值里
//可 直接将这个 jo 输出到文件中
JSONObject jsObj;
if (parentKey != null ){
Object obj = jo.get(parentKey);
jsObj= JSONObject. fromObject (obj);
// jsObj.element("7","78");
jsObj.element(key,value);
jo.element(parentKey,jsObj);
} else {
jo.element(key,value);
}
//组装文件内容
StringBuilder builder = new StringBuilder();
builder.append( "define(function(){return" );
builder.append(jo.toString());
builder.append( "});" );
//将内容输出到文件
FileWriter writer= new FileWriter(file);
writer.write(builder.toString());
writer.flush();
writer.close();
} catch (Exception e){
e.printStackTrace();
}
}

你可能感兴趣的:(用java程序读取js文件并修改属性的值(用json-lib读写js文件))