跳至主要内容

流式文件操作

有时我们需要对文件操作进行更细粒度的控制。Deno 提供了一个低级文件操作接口,可用于此目的。

在 Github 上编辑
在我们的第一个示例中,我们将演示使用可写流。为了处理任何低级文件操作,我们必须首先打开文件。
const output = await Deno.open("example.txt", {
  create: true,
  append: true,
});
现在我们可以从输出中获取一个写入器。这会在完成后自动处理关闭文件。
const outputWriter = output.writable.getWriter();
在我们对写入器进行任何操作之前,我们应该确保它已准备就绪。
await outputWriter.ready;
让我们向文件写入一些文本
const outputText = "I love Deno!";
const encoded = new TextEncoder().encode(outputText);
await outputWriter.write(encoded);
现在我们关闭写入流(以及文件)
await outputWriter.close();
在下一个示例中,让我们从文件中读取文本!
const input = await Deno.open("example.txt");
让我们从输入中获取一个读取器
const inputReader = input.readable.getReader();
const decoder = new TextDecoder();
让我们读取文件中的每个块并将其打印到控制台。
while (true) {
  const result = await inputReader.read();
  if (result.done) {
    break;
  }
  console.log(`Read chunk: ${decoder.decode(result.value)}`);
}

使用 Deno CLI 在本地运行 此示例

deno run --allow-read --allow-write https://docs.deno.org.cn/examples/streaming-files.ts