目次
NodeJS ファイル操作
ファイルの検出
fs.rename
ファイルの作成時に何かを書き込むことができると上で述べましたが、ファイルにテキストを直接追加できますか?毛織物? fs.appendFile
上記は、ファイルの追加、削除、変更の操作です。 . 、今度はコンテンツの読み取りもマスターする必要があります。fs.readFile
stream(流)
读取流
写入流
写在最后
ホームページ ウェブフロントエンド jsチュートリアル Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

Aug 18, 2021 am 10:22 AM
nodejs stream ファイル操作 流れ

この記事では、Nodejs でのファイル操作 (ディレクトリ/ファイルの作成と削除、名前変更、コンテンツの追加、コンテンツの読み取り) を紹介し、ストリームについて簡単に説明します。

Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

NodeJS ファイル操作

  • NodeJSインターネット上で明るく輝くだけでなく、論理的に言えば、これらの api を合理的に使用し、データ処理を追加する限り、多くのローカル操作を完了できます。 [推奨学習: "nodejs チュートリアル "]
  • 前の記事 で、モジュールを参照したい場合は require を使用する必要があることがわかりました。 , 今日紹介したい主役は fs モジュールです。これは NodeJS に組み込まれたファイル モジュールです。このモジュールには多くの API が含まれています使用します。

ディレクトリとファイルの作成

  • fs.mkdir fs.writeFile を使用して、ディレクトリとファイルを別々に作成します。
  • mkdir() は 3 つのパラメータを受け取ることができます。1 つ目はパス、2 つ目はアクセス許可を表すオプションのオプションです。通常はこれは必要ありません。3 つ目のパラメータはコールバック関数です。ここで何らかの処理を行うことができます。
  • /* learnNode.js */
    let fs = require('fs');
    fs.mkdir('js',(err)=>{
      if(err){
        console.log('出错')
      }else{
        console.log('未出错')
      }
    })
    ログイン後にコピー
  • writeFile() は 4 つのパラメータを受け取ることができます。1 つ目はパス、2 つ目はファイルの内容、3 つ目のオプションはアクセス許可を表し、3 つ目は 4 つですはコールバック関数です。
  • /* learnNode.js */
    let fs = require('fs');
    fs.writeFile('./js/newJs.js','console.log("写入这个")',(err)=>{
      if(err){
        console.log('出错')
      }else{
        console.log('没出错')
      }
    })
    ログイン後にコピー

Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

    ディレクトリが正常に作成され、ファイルが書き込まれたことがわかります。

ファイルの検出

  • fs.stat を使用して、パス内のファイルがディレクトリであるか、それともディレクトリであるかを検出できます。ファイルを作成すると、いくつかの操作を行うことができます。
  • /* learnNode.js */
    let fs = require('fs');
    fs.stat('./js/newJs.js', (error, stats) => {
      if(error) {
        console.log(error);
        return false;
      } else {
        console.log(`是否文件:${stats.isFile()}`); 
        console.log(`是否目录:${stats.isDirectory()}`); 
        return false;
      }
    })
    ログイン後にコピー
    star() は主に 2 つのパラメータを受け取ります。1 つ目は検出するファイルで、2 つ目はコールバック関数です。このコールバック関数には 2 つのパラメータがあります。
  • Error オブジェクトと stats オブジェクト。このオブジェクトはファイルに関する情報を提供します。このオブジェクトの情報を判断できます。

Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

ファイルとディレクトリの削除

これで、
    NodeJS## を使用して作成できるようになりました。 # もちろん、主に 2 つの
  • APIfs.unlink``fs.rmdir を使用して、ファイルを削除することもできます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>/* learnNode.js */ let fs = require(&amp;#39;fs&amp;#39;); fs.unlink(&amp;#39;./js/newJs.js&amp;#39;, (err) =&gt; { if (err) throw err; console.log(&amp;#39;文件已删除&amp;#39;); }); fs.rmdir(&amp;#39;./js&amp;#39;,(err)=&gt;{ if (err) throw err; console.log(&amp;#39;目录已删除&amp;#39;); })</pre><div class="contentsignin">ログイン後にコピー</div></div>
  • これら 2 つの
API
    は両方とも、パスとコールバック関数の 2 つのパラメータをそれぞれ受け取ります。
  • node learnNode.js# を実行すると確認できます。 ## ファイルは正常に削除されました。

名前の変更Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

fs.rename

を使用してファイルの名前を変更できます。名前を変更します。
  • /* learnNode.js */
    let fs = require(&#39;fs&#39;);
    fs.rename(&#39;oldJs.js&#39;,&#39;newJs.js&#39;,(err)=>{
      if(err){
        console.log(&#39;出错&#39;)
      }else{
        console.log(&#39;未出错&#39;)
      }
    })
    ログイン後にコピー
  • rename()
は 3 つのパラメータを受け取ることができます。1 つ目はパス、2 つ目は変更された名前、3 つ目はコールバック関数です。注目に値します。はい、最初のパラメータと 2 番目のパラメータに対応するファイルの場所が異なる場合、前のファイルの名前は変更されませんが、ファイルを直接切り取って別の場所に配置します。
  • /* learnNode.js */
    let fs = require(&#39;fs&#39;);
    fs.rename(&#39;newJs.js&#39;,&#39;./js/oldJs.js&#39;,(err)=>{
      if(err){
        console.log(&#39;出错&#39;)
      }else{
        console.log(&#39;剪切到js文件夹内了&#39;)
      }
    })
    ログイン後にコピー
    コンテンツの追加

ファイルの作成時に何かを書き込むことができると上で述べましたが、ファイルにテキストを直接追加できますか?毛織物? fs.appendFile

を使用できます。
  • /* learnNode.js */
    let fs = require(&#39;fs&#39;);
    fs.appendFile(&#39;newJs.txt&#39;,&#39;我是追加的内容&#39;,(err)=>{
      if(err){
        console.log(&#39;出错&#39;)
      }else{
        console.log(&#39;追加内容&#39;)
      }
    })
    ログイン後にコピー
  • appendFile()
は 3 つのパラメータを受け取ることができます。1 つ目はパス、2 つ目はコンテンツ、3 つ目はコールバック関数の実行
    node learnNode.js
  • 以上です。
#ファイルの読み取りとディレクトリの読み取り

Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

上記は、ファイルの追加、削除、変更の操作です。 . 、今度はコンテンツの読み取りもマスターする必要があります。fs.readFile

fs.readdir
    を使用して、それぞれファイルとディレクトリを読み取ることができます。
  • <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>/* learnNode.js */ let fs = require(&amp;#39;fs&amp;#39;); fs.readFile(&amp;#39;newJs.txt&amp;#39;, (err, data) =&gt; { if(err) { console.log(&amp;#39;出错&amp;#39;); } else { console.log(&quot;读取文件成功!&quot;); console.log(data); } })</pre><div class="contentsignin">ログイン後にコピー</div></div>
    /* learnNode.js */
    let fs = require(&#39;fs&#39;);
    fs.readdir(&#39;./&#39;, (err, data) => {
      if(err) {
        console.log(&#39;出错&#39;);
      } else {
        console.log("读取目录成功!");
        console.log(data);
      }
    })
    ログイン後にコピー

  • 可以看到我们两个API都是接收两个参数,第一个是路径,第二个是回调函数,这个回调函数也有两个参数里面包含了data信息,我们可以打印这个data信息来获取内容。

stream(流)

  • 最后我们来简单聊聊stream,翻译过来就是的意思,提到流你会想到什么,河流,水流,都是从一个源头到另一个源头,就像水龙头从开关到流到地面,stream也是这样一个过程。
  • Stream 有四种流类型:
    • Readable - 可读操作。
    • Writable - 可写操作。
    • Duplex - 可读可写操作.
    • Transform - 操作被写入数据,然后读出结果。
  • 在stream的过程中,我们也有事件可以使用,比如检测到错误触发的error,有数据时触发的data
    • data - 当有数据可读时触发。
    • end - 没有更多的数据可读时触发。
    • error - 在接收和写入过程中发生错误时触发。
    • finish - 所有数据已被写入到底层系统时触发。
  • 接下来简单举个例子理解一下吧。

读取流

var fs = require("fs");
var data = &#39;&#39;;
// 创建可读流
var readerStream = fs.createReadStream(&#39;newJs.txt&#39;);
// 设置编码为 utf8。
readerStream.setEncoding(&#39;UTF8&#39;);
// 处理流事件 遇到有数据时执行这个
readerStream.on(&#39;data&#39;, function(chunk) {
  data += chunk;
  console.log(chunk,&#39;流遇到数据了&#39;)
});
// 处理流事件 流结束时执行这个
readerStream.on(&#39;end&#39;,function(){
  console.log(data,&#39;流结束了&#39;);
});
 // 处理流事件 流报错时执行这个
readerStream.on(&#39;error&#39;, function(err){
  console.log(err.stack);
});
console.log("程序执行完毕");
ログイン後にコピー
  • 我们一开始可以创建一个可读流fs.createReadStream(),参数是你要读的文件路径。
  • 当遇到了数据时会执行readerStream.on(&#39;data&#39;,callback()),如下图所示。
  • 当流结束时会执行readerStream.on(&#39;end&#39;,callback()),如下图所示。

Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

写入流

  • 我们上面演示了如何通过流读取一个文件,接下来我们试试通过流写入文件。
var fs = require("fs");
var data = &#39;我是小卢,我再写入流&#39;;
// 创建一个可以写入的流,写入到文件 newJs.txt 中
var writerStream = fs.createWriteStream(&#39;newJs.txt&#39;);
// 使用 utf8 编码写入数据
writerStream.write(data,&#39;UTF8&#39;);
// 标记文件末尾
writerStream.end();
// 处理流事件 完成和报错时执行
writerStream.on(&#39;finish&#39;, function() {
    console.log("写入完毕");
});
writerStream.on(&#39;error&#39;, function(err){
   console.log(err.stack);
});
console.log("程序执行完毕");
ログイン後にコピー
  • 我们首先创建一个流,然后将data数据写入newJs.txt文件中。
  • 当流写入完毕时会执行readerStream.on('finish',callback()),如下图所示。

Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

  • 可以看到该newJs.txt文件中已经存在了我们写入的数据。

Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

写在最后

总的来说NodeJS提供了fs文件操作模块,这个模块有很多的API,上面只是简单的展示了一下,还有很多有趣的API大家只需要用到的时候去官网查就好了,因为NodeJS能操作文件,小至文件查找,大至代码编译。换个角度讲,几乎也只需要一些数据处理逻辑,再加上一些文件操作,就能够编写出大多数前端工具。

原文地址:https://juejin.cn/post/6997204352683212831

作者:快跑啊小卢_

更多编程相关知识,请访问:编程视频!!

以上がNodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。の詳細内容です。詳細については、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Golang を使用してファイルを安全に読み書きするにはどうすればよいですか? Golang を使用してファイルを安全に読み書きするにはどうすればよいですか? Jun 06, 2024 pm 05:14 PM

Go ではファイルを安全に読み書きすることが重要です。ガイドラインには以下が含まれます。 ファイル権限の確認 遅延を使用してファイルを閉じる ファイル パスの検証 コンテキスト タイムアウトの使用 これらのガイドラインに従うことで、データのセキュリティとアプリケーションの堅牢性が確保されます。

Nodejs はバックエンド フレームワークですか? Nodejs はバックエンド フレームワークですか? Apr 21, 2024 am 05:09 AM

Node.js は、高いパフォーマンス、スケーラビリティ、クロスプラットフォーム サポート、豊富なエコシステム、開発の容易さなどの機能を備えているため、バックエンド フレームワークとして使用できます。

Nodejsのグローバル変数とは何ですか Nodejsのグローバル変数とは何ですか Apr 21, 2024 am 04:54 AM

Node.js には次のグローバル変数が存在します。 グローバル オブジェクト: グローバル コア モジュール: プロセス、コンソール、require ランタイム環境変数: __dirname、__filename、__line、__column 定数: unknown、null、NaN、Infinity、-Infinity

Nodejsをmysqlデータベースに接続する方法 Nodejsをmysqlデータベースに接続する方法 Apr 21, 2024 am 06:13 AM

MySQL データベースに接続するには、次の手順に従う必要があります。 mysql2 ドライバーをインストールします。 mysql2.createConnection() を使用して、ホスト アドレス、ポート、ユーザー名、パスワード、データベース名を含む接続オブジェクトを作成します。 connection.query() を使用してクエリを実行します。最後に connection.end() を使用して接続を終了します。

Nodejs インストール ディレクトリ内の npm ファイルと npm.cmd ファイルの違いは何ですか? Nodejs インストール ディレクトリ内の npm ファイルと npm.cmd ファイルの違いは何ですか? Apr 21, 2024 am 05:18 AM

Node.js インストール ディレクトリには、npm と npm.cmd という 2 つの npm 関連ファイルがあります。違いは次のとおりです。拡張子が異なります。npm は実行可能ファイルで、npm.cmd はコマンド ウィンドウのショートカットです。 Windows ユーザー: npm.cmd はコマンド プロンプトから使用できますが、npm はコマンド ラインからのみ実行できます。互換性: npm.cmd は Windows システムに固有ですが、npm はクロスプラットフォームで使用できます。使用上の推奨事項: Windows ユーザーは npm.cmd を使用し、他のオペレーティング システムは npm を使用します。

NodejsとJavaの間に大きな違いはありますか? NodejsとJavaの間に大きな違いはありますか? Apr 21, 2024 am 06:12 AM

Node.js と Java の主な違いは、設計と機能です。 イベント駆動型とスレッド駆動型: Node.js はイベント駆動型で、Java はスレッド駆動型です。シングルスレッドとマルチスレッド: Node.js はシングルスレッドのイベント ループを使用し、Java はマルチスレッド アーキテクチャを使用します。ランタイム環境: Node.js は V8 JavaScript エンジン上で実行され、Java は JVM 上で実行されます。構文: Node.js は JavaScript 構文を使用し、Java は Java 構文を使用します。目的: Node.js は I/O 集中型のタスクに適しており、Java は大規模なエンタープライズ アプリケーションに適しています。

Nodejs はバックエンド開発言語ですか? Nodejs はバックエンド開発言語ですか? Apr 21, 2024 am 05:09 AM

はい、Node.js はバックエンド開発言語です。これは、サーバー側のビジネス ロジックの処理、データベース接続の管理、API の提供などのバックエンド開発に使用されます。

Nodejsはフロントエンドを書くことができますか? Nodejsはフロントエンドを書くことができますか? Apr 21, 2024 am 05:00 AM

はい、Node.js はフロントエンド開発に使用でき、主な利点には、高性能、豊富なエコシステム、クロスプラットフォーム互換性が含まれます。考慮すべき点は、学習曲線、ツールのサポート、コミュニティの規模の小ささです。

See all articles