在 TypeScript 中读取文本文件
本教程是关于如何在 TypeScript 中读取文本文件。
带有 node.js
的 TypeScript
TypeScript 是 JavaScript 的超集。虽然它继承了 JavaScript 本身的所有特性,但它提供了许多开箱即用的强大特性,这些特性是 JavaScript 中不包含的。
node.js
是一个 JavaScript 框架,它使我们能够在服务器端编写 JavaScript。它对典型的基于浏览器的 JavaScript 执行规范产生了相当大的影响。
要使用 node.js
和 TypeScript 进行开发,你必须安装 node.js
。你可以使用以下命令检查节点是否已安装。
node -v
上面的命令应该显示当前安装的 node.js
版本。否则,你需要从官方网站安装 node.js
。
此外,你的机器应该有一个 TypeScript 编译器包。通过运行以下命令进行验证。
tsc --version
它应该显示 TypeScript 编译器版本。
节点模块
通过包含 node.js
,TypeScript 可以毫不费力地使用 NPM 包。NPM 提供了数千个开源包和库,任何应用程序都可以使用它们来立即实现特定功能。
node.js
包是用 JavaScript 语言编写的。因此,你必须提前安装 NPM 包的类型定义。
让我们安装节点类型定义,如下所示。
npm install --save-dev @types/node
它将安装节点包的所有类型定义。
fs
模块
fs
模块是一个广为人知的用于与文件系统交互的包。它提供了广泛的功能来处理本地文件系统,例如读取文件、写入文件、删除目录、附加到文件等。
使用 fs
模块读取文件
fs
模块支持异步和同步 API 从文件中读取。
readFileSync(path, [encoding])
or
readFile(path, [encoding], callback_function)
在 TypeScript 中使用 readFileSync()
函数
readFileSync()
函数可以同步读取文件。它会阻止执行,直到文件读取操作完成。
让我们首先导入 fs
模块。通常,node.js 使用 require()
来导入包。
由于我们在这里使用 TypeScript,我们可以使用 import
。
import * as fs from 'fs';
这将导入 fs
包中的所有函数,我们可以通过 fs
调用它们。
接下来,我们将启动一个变量来保存文件路径。
const fileName: string = 'example.txt';
最后,我们将调用带有参数的 readFileSync()
方法。
let fileContent = fs.readFileSync(fileName, 'utf8');
console.log(fileContent);
编码类型参数应设置为 utf8
。然后该方法将文件内容作为字符串返回。
否则,文件内容将作为缓冲区值返回。
输出:
正如预期的那样,文件内容已记录到控制台。
在 TypeScript 中使用 readFile()
函数
readFile()
方法可以异步读取系统文件。因此,我们可以将回调函数参数传递给该函数。
让我们导入 fs
并初始化一个变量来保存文件路径。
import * as fs from 'fs';
const fileName: string = 'example.txt';
使用 readFile
方法,如下所示。
fs.readFile(fileName, 'utf8', (err, data)=> {
console.log(data);
});
你可能会注意到与上一个示例相同的输出。
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.