ホームページ ウェブフロントエンド jsチュートリアル NodeJ のファイル システムとストリームの詳細な解釈

NodeJ のファイル システムとストリームの詳細な解釈

Jun 09, 2018 pm 04:30 PM
node stream 流れ

この記事では主にnodeJsファイルシステム(fs)とストリーム(stream)の詳細な説明を紹介しますので、参考にしてください。

1. はじめに

この記事では、node.js ファイルシステム (fs) とストリーム (stream) の API とパラメーターの使用法を紹介します。

2. ディレクトリ

ファイルシステムには、

1.fs.readFile

2.fs.writeFile

3.fs.open

4.fs.read

5が導入されます。 fs.stat

6.fs.close

7.fs.mkdir

8.fs.rmdir

9.fs.readdir

10.fs.unlink

4 種類のストリーム ストリーム: 読み取り可能、書き込み可能、 duplex、Transform、Stream オブジェクト イベント。

3. ファイルシステム fs の主なメソッドの紹介

1. fs.readFile

readFile メソッドは主にファイルの内容を読み取り、非同期で動作します。

var fs = require('fs')
fs.readFile('a.txt',function(err,data){
  if (err){
    return console.error(err);
  }else{
    console.log("异步读取: " + data.toString());
  }
})
ログイン後にコピー

2. fs.writeFile

writeFile は非同期モードでファイルを書き込みます、fs.writeFile(file, data[, options], callback)

var fs = require('fs')
console.log("准备写入文件")
fs.writeFile('input.txt',"写入的内容",function(err){
  if (err){
    return console.error(err);
  }else{
    console.log("写入成功");
  }
})
ログイン後にコピー

3. fs.open()

は非同期モードで開きます、ファイル、fs .open(path, flags[, mode], callback)

var fs = require("fs");
// 异步打开文件
console.log("准备打开文件");
fs.open('a.txt', 'r+', function(err, fd) {//r+是以读写模式打开,fd为返回的文件描述符
  if (err) {
    return console.error(err);
  }
 console.log("文件打开成功!");   
});
ログイン後にコピー

4. fs.read()

このメソッドはファイルを非同期で読み取ります。形式: fs.read(fd,buffer,offset,length,position,callback)

var fs = require("fs");
var buf = new Buffer(1024);

console.log("准备打开文件!");
fs.open('at.txt', 'r+', function(err, fd) {
  if (err) {
    return console.error(err);
  }
  fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
   if (err){
     console.log(err);
   }
   // 仅输出读取的字节
   if(bytes > 0){
     console.log(buf.slice(0, bytes).toString());
   }
  });
});
ログイン後にコピー

5. fs.stat()

このメソッドは、ファイル情報を非同期的に取得します。形式: fs.stat(path, callback)

fs.stat('fs.js', function (err, stats) {
  console.log(stats.isFile());     //true
})
ログイン後にコピー

stats クラスのインスタンスを非同期的に返すためのメソッドが多数あります (たとえば、stats.isFile)。 () はファイルかどうかを判断し、stats.isDirectory() はディレクトリかどうかを判断します。 。 。 。 。 。

6. fs.close()

fs.close() 構文形式は次のとおりです: fs.close(fd, callback) パラメーターは次のとおりです:

d - fs.open を介して。 () メソッド 返されたファイル記述子。

callback - コールバック関数、パラメータなし。

7. fs.mkdir()

このメソッドは、ディレクトリを作成します。形式は次のとおりです: fs.mkdir(path[, mode], callback):

path: path。

モード: ディレクトリ権限、デフォルトは 0777。

callback: コールバック、パラメータなし。

var fs = require("fs");
console.log("创建目录/test/");
fs.mkdir("/test/",function(err){
  if (err) {
    return console.error(err);
  }
  console.log("创建/test目录成功。");
});
ログイン後にコピー

8. fs.rmdir()

ディレクトリを削除します。構文形式: fs.rmdir(path, callback)

9. fs.readdir()

このメソッドは、ディレクトリを読み取ります。構文形式: fs .readdir (パス、コールバック)、コールバック関数には 2 つのパラメータがあり、1 つ目は err、2 つ目はディレクトリ内のファイル配列ファイルです。

var fs = require("fs");

console.log("查看 /tmp 目录");
fs.readdir("/tmp/",function(err, files){
  if (err) {
    return console.error(err);
  }
  files.forEach( function (file){
    console.log( file );
  });
});
ログイン後にコピー

10. fs.unlink()

このメソッドは、ファイルを削除するために使用されます: fs.unlink(path, callback)

var fs = require("fs");

console.log("准备删除文件!");
fs.unlink('input.txt', function(err) {
  if (err) {
    return console.error(err);
  }
  console.log("文件删除成功!");
});
ログイン後にコピー

4. ストリームの種類とイベントの概要。 : stream は 4 つのストリーム タイプを持つ抽象インターフェイスです:

readable: 読み取り可能;
  1. duplex: 読み取りおよび書き込み可能操作;
  2. の操作を入力します。データを取得し、結果を読み取ります。
  3. すべてのストリーム オブジェクトは EventEmitter のインスタンスです。共通イベントは次のとおりです:
  4. data: データが読み取り可能なときにトリガーされ、

end: データが読み取れないときにトリガーされ、
  1. error: が発生したときにトリガーされます。エラーが発生します。
  2. finish: 完了時にトリガーされます。
  3. 2. ストリームからデータを読み取ります
  4. var fs = require("fs");
    var data = '';
    
    // 创建可读流
    var readerStream = fs.createReadStream('input.txt');
    
    // 设置编码为 utf8。
    readerStream.setEncoding('UTF8');
    
    // 处理流事件 --> data, end, and error
    readerStream.on('data', function(chunk) {
      data += chunk;
    });
    
    readerStream.on('end',function(){
      console.log(data);
    });
    
    readerStream.on('error', function(err){
      console.log(err.stack);
    });
    
    console.log("程序执行完毕");
    ログイン後にコピー
  5. 4. パイプストリーム(pipe)

    var fs = require("fs");
    var data = '写入流数据';
    
    // 创建一个可以写入的流,写入到文件 output.txt 中
    var writerStream = fs.createWriteStream('output.txt');
    
    // 使用 utf8 编码写入数据
    writerStream.write(data,'UTF8');
    
    // 标记文件末尾
    writerStream.end();
    
    // 处理流事件 --> data, end, and error
    writerStream.on('finish', function() {
      console.log("写入完成。");
    });
    
    writerStream.on('error', function(err){
      console.log(err.stack);
    });
    
    console.log("程序执行完毕");
    ログイン後にコピー
    5. チェーンは、出力ストリームを別のストリームに接続して作成します。複数のストリーム操作チェーンのメカニズム。チェーン フローは通常、パイプライン操作に使用されます。 次に、パイプとチェーンを使用してファイルを圧縮および解凍します。

    rreee

    以上が皆さんのためにまとめたもので、今後皆さんのお役に立てれば幸いです。

    関連記事:

    jquery+css3を使用してパンダTVナビゲーションを実装する方法

    jQueryで時限非表示ダイアログボックスを実装する方法

    JS/jQueryにDIV遅延を実装して、数秒

    ネイティブjsを使用して、都道府県と市区町村間の3レベルの連携を実現

    vueの基本を使用して、追加、削除、変更、確認を作成します

    JS操作クリップボードへの詳細な回答

    vue -ルータープロジェクトの実戦(詳細なチュートリアル)

    以上がNodeJ のファイル システムとストリームの詳細な解釈の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

nvmでノードを削除する方法 nvmでノードを削除する方法 Dec 29, 2022 am 10:07 AM

nvm でノードを削除する方法: 1. 「nvm-setup.zip」をダウンロードして C ドライブにインストールします; 2. 「nvm -v」コマンドで環境変数を構成し、バージョン番号を確認します; 3. 「nvm」を使用しますinstall" コマンド ノードのインストール; 4. "nvm uninstall" コマンドでインストールしたノードを削除します。

Express を使用してノード プロジェクトでファイルのアップロードを処理する方法 Express を使用してノード プロジェクトでファイルのアップロードを処理する方法 Mar 28, 2023 pm 07:28 PM

ファイルのアップロードをどのように処理するか?次の記事では、Express を使用してノード プロジェクトでファイルのアップロードを処理する方法を紹介します。

Nodeのプロセス管理ツール「pm2」を徹底分析 Nodeのプロセス管理ツール「pm2」を徹底分析 Apr 03, 2023 pm 06:02 PM

この記事では、Node のプロセス管理ツール「pm2」について説明し、pm2 が必要な理由、pm2 のインストール方法と使用方法について説明します。皆様のお役に立てれば幸いです。

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

IntelliJ IDEA で Java Stream 操作をデバッグする方法 IntelliJ IDEA で Java Stream 操作をデバッグする方法 May 09, 2023 am 11:25 AM

ストリーム操作は Java8 のハイライトです。 java.util.stream は非常に強力ですが、実際の作業ではほとんど使用していない開発者がまだ多くいます。最も不満の理由の 1 つは、デバッグが難しいということです。実際、最初の頃はそうでした。 as stream は DEBUG では使用できません 1 行のコードだと、実際には次のステップになると多くの操作が一度に渡されるため、どの行に問題があるのか​​判断するのが困難です。プラグイン: JavaStreamDebugger 使用している IDEA バージョンが比較的新しい場合、このプラグインはすでに含まれているため、インストールする必要はありません。まだインストールされていない場合は、手動でインストールしてから以下に進みます。

npm ノード gyp が失敗した場合の対処方法 npm ノード gyp が失敗した場合の対処方法 Dec 29, 2022 pm 02:42 PM

「node-gyp.js」が「Node.js」のバージョンと一致しないため、npm node gyp が失敗します。解決策は次のとおりです: 1. 「npm cache clean -f」を使用してノード キャッシュをクリアします; 2. 「npm install -」を使用します。 g n" n モジュールをインストールします。 3. 「n v12.21.0」コマンドを使用して、「node v12.21.0」バージョンをインストールします。

Angular と Node を使用したトークンベースの認証 Angular と Node を使用したトークンベースの認証 Sep 01, 2023 pm 02:01 PM

認証は、Web アプリケーションの最も重要な部分の 1 つです。このチュートリアルでは、トークンベースの認証システムと、それが従来のログイン システムとどのように異なるかについて説明します。このチュートリアルを終えると、Angular と Node.js で書かれた完全に動作するデモが表示されます。従来の認証システム トークンベースの認証システムに進む前に、従来の認証システムを見てみましょう。ユーザーはログイン フォームにユーザー名とパスワードを入力し、[ログイン] をクリックします。リクエストを行った後、データベースにクエリを実行してバックエンドでユーザーを認証します。リクエストが有効な場合、データベースから取得したユーザー情報を使用してセッションが作成され、セッション情報が応答ヘッダーで返され、セッション ID がブラウザに保存されます。対象となるアプリケーションへのアクセスを提供します。

シングルサインオンシステムとは何ですか? Nodejsを使用して実装するにはどうすればよいですか? シングルサインオンシステムとは何ですか? Nodejsを使用して実装するにはどうすればよいですか? Feb 24, 2023 pm 07:33 PM

シングルサインオンシステムとは何ですか? Nodejsを使用して実装するにはどうすればよいですか?次の記事ではnodeを使ってシングルサインオンシステムを実現する方法を紹介しますので、参考になれば幸いです。

See all articles