ఈ గైడ్ Node.jsలో వ్రాయదగిన స్ట్రీమ్లతో పని చేయడాన్ని వివరిస్తుంది.
Node.jsలో రైటబుల్ స్ట్రీమ్లతో ఎలా పని చేయాలి?
ది ' వ్రాయదగినది ” స్ట్రీమ్ ఫైల్లో కొత్త డేటాను చొప్పించడానికి ఉపయోగించబడుతుంది లేదా మరొక యాదృచ్ఛిక స్ట్రీమ్ యొక్క కంటెంట్ను ఉంచవచ్చు. డేటా మార్పిడి లేదా ప్లేస్మెంట్ ఎక్కువగా '' సహాయంతో జరుగుతుంది పైపు () ” పద్ధతి. ఈ పద్ధతి డేటాను ఢీకొనే అవకాశాలను తగ్గించేటప్పుడు కంటెంట్ను మార్చడం మరియు కేటాయించడం ప్రక్రియను మరింత సౌకర్యవంతంగా చేస్తుంది.
వాక్యనిర్మాణం
కింది పద్ధతిని అమలు చేయడం ద్వారా వ్రాయదగిన స్ట్రీమ్ సృష్టించబడుతుంది:
fs. క్రియేట్ రైట్ స్ట్రీమ్ ( 'targetFile.ext' ) ;
పై వాక్యనిర్మాణంలో, “ క్రియేట్ రైట్ స్ట్రీమ్() 'దిగుమతి చేయబడిన వస్తువు ద్వారా ప్రారంభించబడింది' fs ” మాడ్యూల్, మరియు డేటా వ్రాయబోయే ఫైల్ పారామీటర్గా పంపబడుతుంది.
Node.jsలో వ్రాయదగిన స్ట్రీమ్ల కోసం కొన్ని ఉదాహరణలను చూద్దాం.
ఉదాహరణ 1: రైటబుల్ స్ట్రీమ్ని ఉపయోగించి మరొక ఫైల్ యొక్క కంటెంట్ను వ్రాయడం
దిగువ ఉదాహరణలో, యాదృచ్ఛిక ఫైల్ చదవగలిగే స్ట్రీమ్ ద్వారా పంపబడుతుంది, ఆపై ఈ ఫైల్ కంటెంట్ రైటబుల్ స్ట్రీమ్లో అందుబాటులో ఉన్న మరొక ఫైల్లో ఉంచబడుతుంది:
fsObj ఉంది = అవసరం ( 'fs' ) ;
స్థిరంగా డేటా స్ట్రీమ్ = fsObj. రీడ్ స్ట్రీమ్ సృష్టించండి ( 'mynewfile1.txt' ) ;
స్థిరంగా రైట్ స్ట్రీమ్ = fsObj. క్రియేట్ రైట్ స్ట్రీమ్ ( 'mynewfile2.txt' ) ;
డేటా స్ట్రీమ్. పైపు ( రైట్ స్ట్రీమ్ ) ;
పై కోడ్ వివరణ:
- మొదట, ' fs 'మాడ్యూల్ దిగుమతి చేయబడింది మరియు దాని వస్తువు కొత్తదానిలో నిల్వ చేయబడుతుంది' fsObj ” వేరియబుల్.
- తరువాత, '' సహాయంతో fasObj 'ఆవాహన చేయు' క్రియేట్ రీడ్ స్ట్రీమ్() ” రీడబుల్ స్ట్రీమ్ని సృష్టించే పద్ధతి మరియు ఎంచుకున్న రీడబుల్ ఫైల్ని దాని పారామీటర్గా పాస్ చేయండి.
- అప్పుడు, వ్రాయదగిన స్ట్రీమ్ '' క్రియేట్ రైట్ స్ట్రీమ్() ” అందించిన ఫైల్లో కంటెంట్ను వ్రాయడానికి పద్ధతి.
- పైన పేర్కొన్న పద్ధతుల ఫలితాలను ఇక్కడ నిల్వ చేయండి డేటా స్ట్రీమ్ 'మరియు' రైట్ స్ట్రీమ్ ”వరుసగా వేరియబుల్స్.
- చివరగా, “ని పిలవండి. పైపు () 'అనుసరించే పద్ధతి' డేటా స్ట్రీమ్ 'మరియు' తో ముందుండి రైట్ స్ట్రీమ్ ” వేరియబుల్స్.
ఇప్పుడు, కింది ఆదేశాన్ని అమలు చేయడం ద్వారా కలిగి ఉన్న ఫైల్ (controlFlow.js)ని అమలు చేయండి:
ఉదాహరణ 2: “stream.write()” పద్ధతిని ఉపయోగించి ఫైల్కి కంటెంట్ను వ్రాయడం
ఈ ఉదాహరణలో, ' వ్రాయడానికి() వ్రాయదగిన స్ట్రీమ్లో అందుబాటులో ఉన్న ఫైల్పై డేటాను వ్రాయడానికి ” పద్ధతి ఉపయోగించబడుతుంది:
fsObj ఉంది = అవసరం ( 'fs' ) ;స్థిరంగా httpObj = అవసరం ( 'http' ) ;
స్థిరంగా స్థానికంగా సేవ చేయండి = httpObj. సృష్టించు సర్వర్ ( ( అభ్యర్థన, ప్రతిస్పందన ) => {
ప్రయత్నించండి {
స్థిరంగా సెల్ స్ట్రీమ్ = fsObj. క్రియేట్ రైట్ స్ట్రీమ్ ( 'mynewfile2.txt' ) ;
సెల్ స్ట్రీమ్. వ్రాయడానికి ( 'టార్గెటెడ్ ఫైల్లో ఉంచాల్సిన డేటా.' ) ;
సెల్ స్ట్రీమ్. ముగింపు ( ) ;
ప్రతిస్పందన. ముగింపు ( 'రైటబుల్ స్ట్రీమ్ ద్వారా వ్రాయబడిన డేటా' )
}
క్యాచ్ ( లోపం ) {
కన్సోల్. లోపం ( లోపం ) ;
}
} ) ;
స్థానికంగా సేవ చేయండి. వినండి ( 8080 , ( ) => {
కన్సోల్. లాగ్ ( 'లోకల్హోస్ట్ పోర్ట్ నంబర్లో సర్వర్ నడుస్తోంది: '8080' ' )
) ;
పై కోడ్ యొక్క వివరణ క్రింది విధంగా ఉంది:
- ముందుగా, అవసరమైన వాటిని దిగుమతి చేసుకోండి ' fs 'మరియు' http 'మాడ్యూల్స్ మరియు వాటి వస్తువులను 'లో నిల్వ చేయండి fsObj 'మరియు' httpObj ”వరుసగా వేరియబుల్స్.
- తరువాత, ''ని ప్రారంభించడం ద్వారా సర్వర్ సృష్టించబడింది. createServer() 'పద్ధతి మరియు కొత్తగా సృష్టించబడిన ఈ సర్వర్ని ఒక 'లో నిల్వ చేయడం స్థానికంగా సేవ చేయండి ” వేరియబుల్.
- అప్పుడు, ఒక 'ని ఉపయోగించండి ప్రయత్నించండి 'పద్ధతి కాల్బ్యాక్ ఫంక్షన్లో బ్లాక్ చేయండి మరియు 'ని పిలవండి క్రియేట్ రైట్ స్ట్రీమ్() 'ఉపయోగించే పద్ధతి' fsObj ” వేరియబుల్.
- ఈ పద్ధతి కుండలీకరణం లోపల, కంటెంట్ని చొప్పించాల్సిన లక్ష్య ఫైల్ను పాస్ చేసి, ఫలితాన్ని “ సెల్ స్ట్రీమ్ ” వేరియబుల్
- 'ని ఉపయోగించండి వ్రాయడానికి() ” ఈ వేరియబుల్తో పద్ధతి మరియు దాని కుండలీకరణం లోపల డమ్మీ సందేశాన్ని పంపండి, అది లక్ష్య ఫైల్లో వ్రాయబడుతుంది.
- “ని పిలవడం ద్వారా స్ట్రీమ్ను మూసివేయండి ముగింపు() ” పద్ధతి మరియు వెబ్ పేజీలో విజయ సందేశాన్ని ప్రదర్శించడం ద్వారా “ response.end() ” పద్ధతి. ఎక్కడ ' ప్రతిస్పందన ' అనేది ' యొక్క కాల్ బ్యాక్ పరామితి సృష్టించు సర్వర్ ” పద్ధతి.
- 'ని ఉపయోగించండి క్యాచ్ 'ఏదైనా సంభవించిన లోపాలను నిర్వహించడానికి బ్లాక్ చేయండి.
- చివరగా, పోర్ట్ నంబర్పై సర్వర్ని వినండి లేదా సెటప్ చేయండి ' 8080 ” మరియు విజయ సందేశాన్ని దాని కాల్బ్యాక్ ఫంక్షన్ సహాయంతో ప్రదర్శించండి.
అందించిన వచనం ''ని ఉపయోగించి వ్రాయబడిందని ఉత్పత్తి చేయబడిన అవుట్పుట్ చూపిస్తుంది వ్రాయడానికి() 'పద్ధతి:
ఉదాహరణ 3: బహుళ ఫైల్లలో ఒకే డేటాను వ్రాయడం
ఈ ఉదాహరణలో, స్ట్రీమ్ నుండి ఒకే ఫైల్ చదవబడుతుంది “ క్రియేట్ రీడ్ స్ట్రీమ్() ” పద్ధతి. అప్పుడు, చదివిన కంటెంట్ “ని ఉపయోగించి బహుళ ఫైల్లపై వ్రాయబడుతుంది. క్రియేట్ రైట్ స్ట్రీమ్() 'మరియు' .పైపు() పద్ధతులు:
fsObj ఉంది = అవసరం ( 'fs' ) ;స్థిరంగా డేటా స్ట్రీమ్ = fsObj. రీడ్ స్ట్రీమ్ సృష్టించండి ( 'mynewfile1.txt' ) ;
స్థిరంగా రైట్ స్ట్రీమ్1 = fsObj. క్రియేట్ రైట్ స్ట్రీమ్ ( 'mynewfile2.txt' ) ;
స్థిరంగా రైట్ స్ట్రీమ్2 = fsObj. క్రియేట్ రైట్ స్ట్రీమ్ ( 'usecase.txt' ) ;
డేటా స్ట్రీమ్. పైపు ( రైట్ స్ట్రీమ్1 ) ;
డేటా స్ట్రీమ్. పైపు ( రైట్ స్ట్రీమ్2 ) ;
పై కోడ్ స్నిప్పెట్లో:
- ది ' క్రియేట్ రీడ్ స్ట్రీమ్() ” పద్ధతి ప్రారంభించబడింది మరియు కంటెంట్ చదవాల్సిన ఫైల్ దాని పారామీటర్గా పాస్ చేయబడుతుంది. ఈ పద్ధతి యొక్క ఫలితం ఇక్కడ నిల్వ చేయబడుతుంది ' డేటా స్ట్రీమ్ ” వేరియబుల్.
- తరువాత, ' క్రియేట్ రైట్ స్ట్రీమ్() ” పద్ధతి అంటారు మరియు లక్ష్యం చేయబడిన ఫైల్ దాని పారామీటర్గా పంపబడుతుంది.
- అదే పద్ధతిలో, రెండవ ఫైల్ కోసం మార్గం కూడా వ్రాయదగిన స్ట్రీమ్గా పంపబడుతుంది మరియు ఫలితాలు ఇక్కడ నిల్వ చేయబడతాయి “ రైట్ స్ట్రీమ్1 'మరియు' రైట్ స్ట్రీమ్2 ” వేరియబుల్స్.
- ఆ తరువాత, ఉపయోగించి ' .పైపు() 'లో నిల్వ చేయబడిన కంటెంట్ పద్ధతి' డేటా స్ట్రీమ్ 'వేరియబుల్'కి కేటాయించబడింది రైట్ స్ట్రీమ్1 'మరియు' రైట్ స్ట్రీమ్2 ” వేరియబుల్స్.
అందించిన ఫైల్ కంటెంట్ స్ట్రీమ్లలో అందించిన ఫైల్లలోకి చొప్పించబడిందని ఉత్పత్తి చేయబడిన అవుట్పుట్ చూపిస్తుంది:
Node.jsలో వ్రాయదగిన స్ట్రీమ్ల పని గురించి అంతే.
ముగింపు
వ్రాయదగిన స్ట్రీమ్లతో పని చేయడానికి, “పద్ధతి క్రియేట్ రైట్ స్ట్రీమ్() '' ద్వారా పిలవబడుతుంది fs ” మాడ్యూల్ వస్తువు. కంటెంట్ వ్రాయవలసిన లక్ష్య ఫైల్ మార్గం దాని పరామితిగా పాస్ చేయబడింది. మరొక స్ట్రీమ్ నుండి కంటెంట్ను వ్రాయడానికి ' .పైపు() ” పద్ధతి ఉపయోగించబడుతుంది. ది ' వ్రాయడానికి() లక్ష్యం చేయబడిన ఫైల్లో నేరుగా కంటెంట్ను వ్రాయడం విషయంలో కూడా పద్ధతి సహాయపడుతుంది. ఈ పోస్ట్ వ్రాయదగిన స్ట్రీమ్లతో పని చేసే విధానాన్ని వివరించింది.