您的位置:首页 > 编程语言 > Java开发

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

2017-05-18 18:00 411 查看
要读写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 实例
相关文章推荐