在 TypeScript 中读取文本文件

Migel Hewage Nimesha 2023年1月30日 2022年7月18日
  1. 带有 node.js 的 TypeScript
  2. 节点模块
  3. fs 模块
  4. 使用 fs 模块读取文件
在 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 中读取文件图像

正如预期的那样,文件内容已记录到控制台。

在 TypeScript 中使用 readFile() 函数

readFile() 方法可以异步读取系统文件。因此,我们可以将回调函数参数传递给该函数。

让我们导入 fs 并初始化一个变量来保存文件路径。

import * as fs from 'fs';
const fileName: string = 'example.txt';

使用 readFile 方法,如下所示。

fs.readFile(fileName, 'utf8', (err, data)=> {
    console.log(data);
});

你可能会注意到与上一个示例相同的输出。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.

相关文章 - TypeScript File