Node.js fs.writeFileSync() -menetelmä
Menetelmä fs.writeFileSync() on synkroninen menetelmä. Se luo uuden tiedoston, jos määritettyä tiedostoa ei ole olemassa. Myös 'readline-sync' -moduulia käytetään mahdollistamaan käyttäjän syöttäminen ajon aikana.
Node.js:n fs-moduuli toteuttaa File I/O -toiminnon. Fs-moduulin menetelmät voivat olla synkronisia tai asynkronisia. Asynkronisen funktion viimeisenä parametrina on takaisinsoittotoiminto, joka osoittaa asynkronisen toiminnon valmistumisen. Node.js-kehittäjät suosivat asynkronisia menetelmiä synkronisten menetelmien sijaan, koska asynkroniset menetelmät eivät koskaan estä ohjelmaa sen suorittamisen aikana, kun taas jälkimmäinen estää.
Pääsäikeen estäminen on Node.js:n väärinkäyttöä, joten synkronisia toimintoja tulisi käyttää vain virheenkorjaukseen tai kun muita vaihtoehtoja ei ole käytettävissä.
Syntaksi:
fs.writeFileSync( file, data, options )
Parametrit: Tämä menetelmä hyväksyy kolme edellä mainittua ja alla kuvattua parametria:
- tiedosto: Se on merkkijono, puskuri, URL-osoite tai tiedoston kuvaus kokonaisluku, joka ilmaisee tiedoston polun, johon se on kirjoitettava. Tiedostokuvaajan käyttäminen saa sen käyttäytymään samalla tavalla kuin fs.write()-metodi. data: Se on merkkijono, puskuri, TypedArray tai DataView, joka kirjoitetaan tiedostoon. Options: Se on merkkijono tai objekti, jota voidaan käyttää valinnaisten parametrien määrittämiseen, jotka vaikuttavat lähtöön. Siinä on kolme valinnaista parametria:
- koodaus: Se on merkkijono, joka määrittää tiedoston koodauksen. Oletusarvo on 'utf8'. tila: Se on kokonaisluku, joka määrittää tiedostotilan. Oletusarvo on 0o666. lippu: Se on merkkijono, joka määrittää lipun, jota käytetään tiedostoon kirjoitettaessa. Oletusarvo on 'w'.
Alla olevat esimerkit havainnollistavat fs.writeFileSync() -menetelmä Node.js:ssä.
Esimerkki 1:
javascript
// Node.js program to demonstrate the> // fs.writeFileSync() method> > // Import the filesystem module> const fs = require(> 'fs'> );> > let data => 'This is a file containing a collection'> > +> ' of programming languages.
'> > +> '1. C
2. C++
3. Python'> ;> > fs.writeFileSync(> 'programming.txt'> , data);> console.log(> 'File written successfully
'> );> console.log(> 'The written has the following contents:'> );> console.log(fs.readFileSync(> 'programming.txt'> ,> 'utf8'> ));> |
Lähtö:
File written successfully The written has the following contents: This is a file containing a collection of programming languages. 1. C 2. C++ 3. Python
Esimerkki 2:
javascript
// Node.js program to demonstrate the> // fs.writeFileSync() method> > // Import the filesystem module> const fs = require(> 'fs'> );> > // Writing to the file 5 times> // with the append file mode> for> (let i = 0; i <5; i++) {> > fs.writeFileSync(> 'movies.txt'> ,> > 'Movie '> + i +> '
'> ,> > {> > encoding:> 'utf8'> ,> > flag:> 'a+'> ,> > mode: 0o666> > });> }> > console.log(> 'File written successfully 5 times
'> );> console.log(> 'The written file has the following contents:'> );> console.log(fs.readFileSync(> 'movies.txt'> ,> 'utf8'> ));> |
Lähtö:
File written successfully 5 times The written file has the following contents: Movie 0 Movie 1 Movie 2 Movie 3 Movie 4
Esimerkki 3: Käyttäjien ajonaikaisen syötteen ottaminen tiedostonimeä ja tiedostotietoja varten readline-moduulin avulla
javascript
let readline = require(> 'readline-sync'> );> let fs = require(> 'fs'> );> > let path = readline.question(> 'Enter file name/path: '> );> > console.log(> 'Entered path : '> + path);> > let data = readline.question(> 'Enter file data: '> );> > //synchronous functions may throw errors> //which can be handled using try-catch block> try> {> > fs.writeFileSync(path, data, { flag:> 'a+'> });> //'a+' is append mode> > console.log(> 'File written successfully'> );> }> catch> (err) {> > console.error(err);> }> console.log(> '-----------------------------------------------'> );> try> {> > const data = fs.readFileSync(path, { encoding:> 'utf8'> });> > console.log(> 'File content is as follows:'> );> > // Display the file data> > console.log(data);> }> catch> (err) {> > console.log(err);> }> |
Lähtö
Esimerkki 4: Ajonaikaisen syötteen ottaminen käyttäjiltä tiedostotiedoille readline-moduulin avulla puskuria käyttäen.
javascript
let fs = require(> 'fs'> );> let readline = require(> 'readline-sync'> );> let path = readline.question(> 'Enter file name/path: '> );> > console.log(> 'Entered path : '> + path);> > // 1024 specifies the buffer size. We can limit> // the data size by this approach> let buf => new> Buffer.alloc(1024);> buf = readline.question(> 'Enter data:'> );> > > try> {> > fs.writeFileSync(path, buf, { flag:> 'a+'> });> > console.log(> 'File written successfully'> );> }> catch> (err) {> > console.error(err);> }> console.log(> '-----------------------------------------------'> );> try> {> > const data = fs.readFileSync(path, { encoding:> 'utf8'> });> > console.log(> 'File content is as follows:'> );> > // Display the file data> > console.log(data);> }> catch> (err) {> > console.log(err);> }> |
Lähtö
Viite: https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options