要读写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();
}
}