Maison > interface Web > js tutoriel > node.js utilise des flux pour réaliser la synchronisation de la lecture et de l'écriture, ainsi que la fonction de lecture et d'écriture en même temps

node.js utilise des flux pour réaliser la synchronisation de la lecture et de l'écriture, ainsi que la fonction de lecture et d'écriture en même temps

不言
Libérer: 2018-06-30 10:57:33
original
1759 Les gens l'ont consulté

L'article suivant vous présente une méthode node.js pour utiliser les flux pour obtenir la synchronisation de la lecture et de l'écriture, et comment lire et écrire en même temps. Le contenu est assez bon, je vais donc le partager avec vous maintenant et le donner comme référence.

est la suivante :

//10个数 10个字节,每次读4b,写1b
let fs=require("fs");
function pipe(source,target) {
  //先创建可读流,再创建可写流
  //先读一次,rs.on(data)
  //将读到的类容写入目标中 ,返回布尔值,如果是ture,继续写,默认情况应该是false,暂停读取
  //ws.on('drain'),抽干后,回复读取
  //监听读取文件完毕后,关闭读取rs.on('end')

  let rs=fs.createReadStream(source,{highWaterMark:4});
  let ws=fs.createWriteStream(target,{highWaterMark:1});

  rs.on('data',function (chunk) { //chunk是buffer类型

    if(ws.write(chunk)===false){
      //写不下,停止读取
      rs.pause()
    }

  });
  ws.on('drain',function () {
    //每次写的内存干了就恢复读取
    console.log("111");
    rs.resume() //恢复读取
  });
  rs.on('end',function (chunk) {
    ws.end();
  })

}
pipe('./1.txt','./3.txt')
Copier après la connexion

La méthode d'écriture ci-dessus est plus lourde . Après avoir lu ceci, oubliez ça

node.js nous fournit la méthode intégrée pipe

//10个数 10个字节,每次读4b,写1b
let fs=require("fs");
function pipe(source,target) {

  let rs=fs.createReadStream(source,{highWaterMark:4});
  let ws=fs.createWriteStream(target,{highWaterMark:1});
  //可读流到可写流,异步操作,可以保证内存不会被淹没,读一点,写一点
  // 如果想看文件类容,使用readFile

  rs.pipe(ws);
}
pipe('./1.txt','./4.txt')
Copier après la connexion

pour directement. faire fonctionner le flux de lecture dans le flux d'écriture, ou une opération asynchrone

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez faire attention au chinois PHP. site web!

Recommandations associées :

À propos de la fonction de communication simple entre le serveur de socket nodejs et le client

Angular2 et nodejs implémentent le téléchargement d'images Les fonctions de

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal