如何做到读一行文本,删除一行文本
path=files.cwd()+"/text3.txt";
写入文件(path,4,"ccc");
写入文件(path,0,"aa");
log("读取-->"+读取文件(path,0));
function 写入文件(filePath,line,str){
files.createWithDirs(filePath);
var 旧内容=files.read(filePath)+"";
var 分组=旧内容.split("\n");
分组[line]=str;
files.write(filePath,分组.join("\n"));
return true;
}
function 读取文件(filePath,line){
if(!files.isFile(filePath)){
return "";
}
var 旧内容=files.read(filePath)+"";
var 分组=旧内容.split("\n");
if(line<分组.length){
return 分组[line];
}
return "";
}
怒我直言,这并不是一种好的操作方式
一般不直接操作文件,或者做删除。
1、文件操作效率跟内存比起来太低
2、一般不做删除,删除原数组来说,会导致顺序变更。遍历会出错
3、可以的话,可以试试使用json
上面是对文件一行一行的读,以及一行一行的写。
删除的话,本质是将删除后的数据覆盖到原数据
操作的话,可以一次性读取全部数据到内存,然后复制一个数组。
原数组做遍历。新数组做删除操作,再覆盖写入。
var fileContents = files.read("./1.txt");
var contentList=fileContents.split("\n");
var copyList=contentList.slice(0);
fileContents.split("\n").forEach(line=>{
log(line);
//对复制的副本做删除操作
copyList.shift();
//TODO
//将新的数据写入
files.write("./1.txt",copyList.join("\n"));
}
)
以上就完成了 "删除" 操作