[解決済み] Node.jsを使ってテキストファイルを読み込む?
質問
ターミナルでテキストファイルを渡し、そこからデータを読み込みたいのですが、どうすればいいでしょうか?
node server.js file.txt
ターミナルからパスを渡すと、どうやってそれを相手側で読み取るのでしょうか?
どのように解決するのですか?
を使用することになります。
process.argv
配列を使ってコマンドライン引数にアクセスし、ファイル名を取得します。
ファイルシステムモジュール(fs)
を使ってファイルを読み込むことができます。 例えば
// Make sure we got a filename on the command line.
if (process.argv.length < 3) {
console.log('Usage: node ' + process.argv[1] + ' FILENAME');
process.exit(1);
}
// Read the file and print its contents.
var fs = require('fs')
, filename = process.argv[2];
fs.readFile(filename, 'utf8', function(err, data) {
if (err) throw err;
console.log('OK: ' + filename);
console.log(data)
});
それを少し分解してみると
process.argv
は通常長さが2つあり、0番目の項目は"node"インタプリタで、最初の項目はnodeが現在実行しているスクリプト、それ以降はコマンドラインから渡された項目です。 argvからファイル名を取り出したら、ファイルシステムの関数を使ってファイルを読み、その内容で好きなことをすることができます。 サンプルは以下のような感じです。
$ node ./cat.js file.txt
OK: file.txt
This is file.txt!
[編集]をクリックします。
@wtfcoder が言及しているように、" を使用することです。
fs.readFile()
なぜなら、コールバック関数に渡す前にファイルの全コンテンツをバッファリングしてしまうからです。 このバッファリングは多くのメモリを消費する可能性がありますが、さらに重要なのは、node.jsのコア機能の1つである非同期、イベント化されたI/Oを利用しないことです。
大きなファイル(あるいはどんなファイルでも)を処理する方法として、quot;node" は、次のように使用します。
fs.read()
で、オペレーティングシステムから利用可能な各チャンクを処理します。 しかし、このようにファイルを読むと、自分自身で(おそらく)ファイルの解析/処理を漸進的に行う必要があり、ある程度のバッファリングが避けられないかもしれません。
関連
-
vueのグローバルがscss(mixin)を導入。
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.JSを使用して、JSONファイルを(サーバー)メモリに読み込むにはどうすればよいですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】Node.jsのrequireとES6のimport/exportを使い分ける。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
要素ツリー制御によるvueTreeテーブル
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
JavaScriptのStringに関する共通メソッド
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
[解決済み] node.jsでファイルを1行ずつ読み込む?
-
[解決済み] fs.readFileからデータを取得する
-
[解決済み】node.js:テキストファイルを配列に読み込む。(各行は配列のアイテムです)。
-
[解決済み] Node.jsで巨大なログファイルを解析する - 1行ずつ読む