//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!