在 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