在 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.