Deno 是一个安全的 JavaScript 和 TypeScript 运行时环境,它支持异步 I/O 操作、跨平台支持和内置的模块加载器。在 Deno 中处理输入和输出是非常重要的操作,因为它们是与用户的主要交互方式之一。本文将详细介绍如何在 Deno 中优雅地处理输入和输出,帮助读者掌握这个关键技能。
输入和输出的基础知识
在 Deno 中,输入和输出通常是指从命令行读取用户输入(标准输入)或将结果输出到控制台(标准输出)。我们可以使用 Deno.stdin
和 Deno.stdout
来访问它们。Deno.stdin
是一个 Deno.File
对象,可以通过监听其 readable
事件从中读取数据,而 Deno.stdout
是一个插入式的 WriteCloser
,可以使用 .write()
方法将数据写入。
那么,如何读取用户在命令行中输入的数据呢?可以使用 Deno.readLine()
方法。这个方法返回一个 Promise
,一旦读取到数据,它就会被解析为一个字符串。在写入数据时,我们可以使用 .write()
方法将数据写入到 Deno.stdout
中。
以下是一个简单的示例程序:
const input = await Deno.readLine("请输入内容: "); console.log(`您输入的内容是: ${input}`); const encoder = new TextEncoder(); const data = encoder.encode("输出的数据"); await Deno.stdout.write(data);
这个程序首先使用 Deno.readLine()
方法读取用户的输入,并使用 console.log()
方法将结果输出到控制台。然后,它使用 TextEncoder
将要输出的数据编码,并使用 .write()
方法将数据写入到 Deno.stdout
中。
以交互式方式读取输入
在命令行工具中,交互式读取输入是非常常见的操作。在 Deno 中,我们可以使用 prompt()
方法读取交互式输入。这个方法类似于 readline()
,但它不需要参数,并返回读取到的字符串。
以下是一个简单的示例程序:
const name = prompt("请输入您的姓名: "); console.log(`您好,${name}!`);
这个程序首先使用 prompt()
方法读取用户的输入,并将结果输出到控制台。
处理控制台输出
在 Deno 中,我们可以使用 console.log()
方法将信息输出到控制台。此外,我们还可以使用 Deno.writeAllSync()
方法将数据写入到文件或其他数据流中,例如使用 Deno.openSync()
打开一个文件并传递数据。
以下是一个简单的示例程序:
const msg = "你好世界!\n"; console.log(msg); const file = Deno.openSync("./output.txt", { write: true }); Deno.writeAllSync(file.rid, new TextEncoder().encode(msg)); Deno.close(file.rid);
这个程序首先使用 console.log()
方法将消息写入到控制台,然后使用 Deno.openSync()
方法打开一个名为 output.txt
的文件并使用 Deno.writeAllSync()
将消息写入到里面,最后使用 Deno.close()
方法关闭文件句柄。
处理文件输入和输出
在 Deno 中,我们可以使用 Deno.readFile()
和 Deno.writeFile()
方法读取和写入文件。这些方法都是异步的,并且返回 Promise
,因此我们需要使用 async/await
或 .then()
方法来处理它们的结果。
以下是一个简单的示例程序:
const fileData = await Deno.readFile("./input.txt"); console.log(new TextDecoder().decode(fileData)); await Deno.writeFile("./output.txt", new TextEncoder().encode("Hello World!")); const verifyData = await Deno.readFile("./output.txt"); console.log(new TextDecoder().decode(verifyData));
这个程序首先使用 Deno.readFile()
方法读取 input.txt
文件中的内容,并使用 TextDecoder
解码内容并将其输出到控制台。然后,它使用 Deno.writeFile()
方法将字符串 "Hello World!"
写入到 output.txt
文件中,并使用再次使用 Deno.readFile()
方法读取文件内容,并使用 TextDecoder
解码内容并将其输出到控制台。
总结
在本文中,我们探讨了如何在 Deno 中优雅地处理输入和输出,并详细讲述了如何读取用户输入、以交互式方式读取输入、处理控制台输出以及处理文件输入和输出。我们希望这些技巧对读者学习和掌握 Deno 技术非常有帮助。同时,请注意,本文只是介绍了 Deno 的入门知识,您还可以深入研究文件读写、HTTP 请求等其他方面的内容。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6469a915968c7c53b0983d76