Heim  >  Artikel  >  Web-Frontend  >  node.js verwendet Streams, um eine Synchronisierung des Lesens und Schreibens sowie die Funktion des gleichzeitigen Lesens und Schreibens zu erreichen

node.js verwendet Streams, um eine Synchronisierung des Lesens und Schreibens sowie die Funktion des gleichzeitigen Lesens und Schreibens zu erreichen

不言
不言Original
2018-06-30 10:57:331709Durchsuche

Der folgende Artikel stellt Ihnen eine Methode von node.js vor, mit der Sie Streams verwenden können, um eine Synchronisierung von Lesen und Schreiben zu erreichen, und wie Sie gleichzeitig lesen und schreiben. Der Inhalt ist ziemlich gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden.

lautet wie folgt:

//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')

Die obige Schreibmethode ist bitte komplizierter siehe Nachdem Sie fertig sind, vergessen Sie es

node.js stellt uns die integrierte Methodenpipe zur Verfügung

//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')

führt den Lesestrom direkt ein der Schreibstrom oder asynchrone Operation

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Lernen aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Über die einfache Kommunikationsfunktion zwischen NodeJS-Socket-Server und Client

Angular2 und NodeJS implementieren das Hochladen von Bildern Die Funktionen von

Das obige ist der detaillierte Inhalt vonnode.js verwendet Streams, um eine Synchronisierung des Lesens und Schreibens sowie die Funktion des gleichzeitigen Lesens und Schreibens zu erreichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn