Heim  >  Artikel  >  Web-Frontend  >  node.js implementiert die Lese- und Schreibsynchronisationsfunktion

node.js implementiert die Lese- und Schreibsynchronisationsfunktion

php中世界最好的语言
php中世界最好的语言Original
2018-04-18 11:02:241320Durchsuche
//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 Schreibweise ist ziemlich umständlich. Nachdem alle sie gelesen haben, vergessen Sie sie einfach

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ühren Sie den Lesestrom direkt in den Schreibstrom ein oder arbeiten Sie asynchron

Ich glaube, Sie haben die Methode nach dem Lesen des Falls in diesem Artikel beherrscht. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln zum PHP-Chinesen Webseite!

Empfohlene Lektüre:

Detaillierte Installationsschritte von JSONBuddy

So bedienen Sie die Seitenregionalisierung mit Vuejs

Das obige ist der detaillierte Inhalt vonnode.js implementiert die Lese- und Schreibsynchronisationsfunktion. 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