ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejs ファイル操作とストリーム (ストリーム) について簡単に紹介します。

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

青灯夜游
青灯夜游転載
2021-08-18 10:22:482329ブラウズ

この記事では、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 を使用して、ファイルを削除することもできます。 <pre class="brush:js;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>
  • これら 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
    を使用して、それぞれファイルとディレクトリを読み取ることができます。
  • <pre class="brush:js;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>
    /* 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('data',callback()),如下图所示。
  • 当流结束时会执行readerStream.on('end',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 までご連絡ください。