上一篇用java写的感觉paojava代码还要配置环境以及安装jar包,不如直接跑node,直接贴代码。
let fs = require("fs");
class TakeJson{
static compileStirng(key, string) {
return "\"" + key + "\"" + string;
}
constructor(url){
this.baseUrl = url;
this.inputStream = {};
this.outpuntStream = {};
this.inputPutFile = this.baseUrl + '/zh-cn.json';
this.outPutFile = this.baseUrl + '/en.json';
this.sortedKey = [];
this.computeFile();
}
async computeFile(){
try {
const input = await this.computeInputStream(this.baseUrl);
const output = await this.computeInputStream(this.outPutFile);
fs.writeFile(this.inputPutFile, this.compile(this.inputStream = JSON.parse(input), this.sortKey()), this.getError);
fs.writeFile(this.outPutFile, this.compile(this.outpuntStream = JSON.parse(output), this.sortKey()), this.getError);
} catch (error) {
console.log(error)
}
}
getError(err) {
if (err) {
return console.error(err);
}
console.log("数据写入成功!");
}
sortKey(){
this.sortedKey = Object.keys(this.inputStream);
return this.sortedKey.sort((a, b) => {
if(a > b) {
return 1;
}
if(a == b) {
return 0;
}
return -1;
});
}
computeInputStream (url) {
const that = this;
const promise = new Promise(function(resolve, reject){
fs.readFile(url, function(error, data){
if(error) {
resolve('{"en": "english"}');
}else {
resolve(data.toString());
}
});
});
return promise;
}
compile(stream, keys) {
let outJson = "{\n ";
keys.map((key, index) => {
outJson += TakeJson.compileStirng(key, ": ") + TakeJson.compileStirng(stream[key] ? stream[key] : '', ",\n ");
});
outJson += "}";
return outJson.replace(",\n }", "\n}");
}
}
new TakeJson('F:/数据simple');
//直接放文件路径就可以了