如何编辑用 Deno 加载的文件?
How to edit a file loaded with Deno?
最近我开始使用 Deno,我正在按照 Deno 手册上的说明阅读和编码。
过了一段时间,我尝试编辑文件复制的内容,但找不到方法。
有人可以帮助我吗?
for (let i = 0; i < Deno.args.length ; i++) {
let filename = Deno.args[i];
let file = await Deno.open(filename);
await Deno.copy(file, Deno.stdout);
file.close()
}
这些是我使用的终端命令。
deno run --allow-read hello.ts password.txt users.txt
并且输出:
Compile file:///home/lustepe/Dev/Practices/deno-test/hello.ts
<password>
<user>
谢谢!
现在 Deno 支持使用 Deno.writeFile:
编辑 JSON 文件
const encoder = new TextEncoder();
const data = encoder.encode("Hello world\n");
await Deno.writeFile("hello1.txt", data); // overwrite "hello1.txt" or create it
await Deno.writeFile("hello2.txt", data, {create: false}); // only works if "hello2.txt" exists
await Deno.writeFile("hello3.txt", data, {mode: 0o777}); // set permissions on new file
await Deno.writeFile("hello4.txt", data, {append: true}); // add data to the end of the file
我找不到一种高度灵活地编辑文件的方法,例如按位置、替换或正则表达式。
那么你唯一的选择就是将文件加载到内存中,编辑它,然后写入整个文件。
// load file
const decoder = new TextDecoder("utf-8");
const content = decoder.decode(await Deno.readFile('data.json'));
const json = JSON.parse(content);
// sets new data
json.data = "new data";
// write new data
const newtxt = JSON.stringify(json);
const newdata = new TextEncoder().encode(newtxt)
await Deno.writeFile("data.json", newdata);
let data = await Deno.readFile("data.json");
console.log(decoder.decode(data));
最近我开始使用 Deno,我正在按照 Deno 手册上的说明阅读和编码。
过了一段时间,我尝试编辑文件复制的内容,但找不到方法。
有人可以帮助我吗?
for (let i = 0; i < Deno.args.length ; i++) {
let filename = Deno.args[i];
let file = await Deno.open(filename);
await Deno.copy(file, Deno.stdout);
file.close()
}
这些是我使用的终端命令。
deno run --allow-read hello.ts password.txt users.txt
并且输出:
Compile file:///home/lustepe/Dev/Practices/deno-test/hello.ts
<password>
<user>
谢谢!
现在 Deno 支持使用 Deno.writeFile:
编辑 JSON 文件const encoder = new TextEncoder();
const data = encoder.encode("Hello world\n");
await Deno.writeFile("hello1.txt", data); // overwrite "hello1.txt" or create it
await Deno.writeFile("hello2.txt", data, {create: false}); // only works if "hello2.txt" exists
await Deno.writeFile("hello3.txt", data, {mode: 0o777}); // set permissions on new file
await Deno.writeFile("hello4.txt", data, {append: true}); // add data to the end of the file
我找不到一种高度灵活地编辑文件的方法,例如按位置、替换或正则表达式。
那么你唯一的选择就是将文件加载到内存中,编辑它,然后写入整个文件。
// load file
const decoder = new TextDecoder("utf-8");
const content = decoder.decode(await Deno.readFile('data.json'));
const json = JSON.parse(content);
// sets new data
json.data = "new data";
// write new data
const newtxt = JSON.stringify(json);
const newdata = new TextEncoder().encode(newtxt)
await Deno.writeFile("data.json", newdata);
let data = await Deno.readFile("data.json");
console.log(decoder.decode(data));