Metóda fs.writeFileSync() je synchrónna metóda. Ak zadaný súbor neexistuje, vytvorí sa nový súbor. Modul „readline-sync“ sa tiež používa na povolenie vstupu používateľa za behu.
Modul „fs“ v Node.js implementuje operáciu File I/O. Metódy modulu fs môžu byť synchrónne aj asynchrónne. Asynchrónna funkcia má funkciu spätného volania ako posledný parameter, ktorý indikuje dokončenie asynchrónnej funkcie. Vývojári Node.js uprednostňujú asynchrónne metódy pred synchrónnymi metódami, pretože asynchrónne metódy nikdy neblokujú program počas jeho vykonávania, zatiaľ čo druhé blokujú.
Blokovanie hlavného vlákna je v Node.js nesprávny postup, preto by sa synchrónne funkcie mali používať iba na ladenie alebo ak nie sú dostupné žiadne iné možnosti.
Syntax:
fs.writeFileSync( file, data, options )>
Parametre: Táto metóda akceptuje tri parametre, ako je uvedené vyššie a opísané nižšie:
- súbor: Je to reťazec, vyrovnávacia pamäť, URL alebo celé číslo popisu súboru, ktoré označuje cestu k súboru, kam sa má zapísať. Použitie deskriptora súboru spôsobí, že sa bude správať podobne ako metóda fs.write(). data: Je to reťazec, Buffer, TypedArray alebo DataView, ktorý sa zapíše do súboru. options: Je to reťazec alebo objekt, ktorý možno použiť na zadanie voliteľných parametrov, ktoré ovplyvnia výstup. Má tri voliteľné parametre:
- kódovanie: Je to reťazec, ktorý určuje kódovanie súboru. Predvolená hodnota je „utf8“. režim: Je to celé číslo, ktoré určuje režim súboru. Predvolená hodnota je 0o666. príznak: Je to reťazec, ktorý určuje príznak používaný pri zápise do súboru. Predvolená hodnota je „w“.
Nižšie uvedené príklady ilustrujú metóda fs.writeFileSync(). v Node.js.
Príklad 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'> ));> |
čo je svn pokladňa
>
>
Výkon:
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>
Príklad 2:
javascript
'kruskalov algoritmus'
// 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'> ));> |
>
>
Výkon:
File written successfully 5 times The written file has the following contents: Movie 0 Movie 1 Movie 2 Movie 3 Movie 4>
Príklad 3: Prevzatie runtime vstupu od používateľov pre názov súboru a dáta súboru pomocou modulu readline
javascript
objekt poľa v jazyku Java
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);> }> |
>
>
Výkon
Príklad 4: Prevzatie runtime vstupu od používateľov pre dáta súboru pomocou modulu readline pomocou vyrovnávacej pamäte.
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);> }> |
program v jave
>
>
Výkon
Referencia: https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options