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 モジュール
node.js
を含めることで、TypeScript は手間をかけずに NPM パッケージを利用できます。NPM は、あらゆるアプリケーションが特定の機能をすぐに実装するために使用できる何千ものオープンソースパッケージとライブラリを提供します。
node.js
パッケージは JavaScript 言語で書かれています。したがって、事前に NPM パッケージの型定義をインストールする必要があります。
次のようにノードタイプ定義をインストールしてみましょう。
npm install --save-dev @types/node
ノードパッケージのすべての型定義がインストールされます。
fs
モジュール
fs
モジュールは、ファイルシステムとの対話に使用される広く知られているパッケージです。ファイルからの読み取り、ファイルへの書き込み、ディレクトリの削除、ファイルへの追加など、ローカルファイルシステムを処理するための幅広い機能を提供します。
fs
モジュールでファイルを読む
fs
モジュールは、ファイルから読み取るための非同期 API と同期 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.