다음 기사에서는 스트림을 사용하여 읽기 및 쓰기 동기화를 달성하는 node.js에 대한 기사와 동시에 읽고 쓰는 방법에 대한 기사를 제공합니다. 내용이 꽤 괜찮아서 지금 공유해서 참고용으로 올려드리겠습니다.
은 다음과 같습니다.
//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')
위의 작성 방법은 모두가 읽은 후에는 더 복잡합니다.
node.js는 내장된 메소드 파이프
를 제공합니다.//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')
직접 읽기 스트림을 쓰기 스트림으로 운영해야 할까요, 아니면 비동기적으로 운영해야 할까요? 위 내용이 모두의 학습에 도움이 되기를 바랍니다. PHP 중국어 웹사이트에 주목하세요!
관련 권장 사항:
nodejs 소켓 서버와 클라이언트 간의 단순 통신 기능에 대해angular2와 nodejs는 이미지 업로드 기능을 구현합니다위 내용은 node.js는 스트림을 사용하여 읽기와 쓰기의 동기화, 동시에 읽기와 쓰기 기능을 달성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!