Node.js fs.writeFileSync() Metode
Metoden fs.writeFileSync() er en synkron metode. Den oppretter en ny fil hvis den angitte filen ikke eksisterer. Dessuten brukes 'readline-sync'-modulen for å aktivere brukerinndata under kjøring.
'fs'-modulen til Node.js implementerer File I/O-operasjonen. fs-modulmetodene kan være synkrone så vel som asynkrone. Asynkronfunksjonen har en tilbakeringingsfunksjon som den siste parameteren som indikerer fullføringen av den asynkrone funksjonen. Node.js-utviklere foretrekker asynkrone metoder fremfor synkrone metoder, da asynkrone metoder aldri blokkerer et program under kjøringen, mens sistnevnte gjør det.
Å blokkere hovedtråden er feilbehandling i Node.js, derfor bør synkrone funksjoner kun brukes for feilsøking eller når ingen andre alternativer er tilgjengelige.
Syntaks:
fs.writeFileSync( file, data, options )
Parametere: Denne metoden godtar tre parametere som nevnt ovenfor og beskrevet nedenfor:
- fil: Det er en streng, buffer, URL eller filbeskrivelsesheltall som angir banen til filen der den skal skrives. Ved å bruke en filbeskrivelse vil den oppføre seg på samme måte som fs.write()-metoden. data: Det er en streng, Buffer, TypedArray eller DataView som vil bli skrevet til filen. alternativer: Det er en streng eller et objekt som kan brukes til å spesifisere valgfrie parametere som vil påvirke utdataene. Den har tre valgfrie parametere:
- koding: Det er en streng som spesifiserer kodingen av filen. Standardverdien er 'utf8'. modus: Det er et heltall som spesifiserer filmodusen. Standardverdien er 0o666. flagg: Det er en streng som spesifiserer flagget som brukes under skriving til filen. Standardverdien er 'w'.
Eksemplene nedenfor illustrerer fs.writeFileSync()-metoden i Node.js.
Eksempel 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'> ));> |
Produksjon:
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
Eksempel 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'> ));> |
Produksjon:
File written successfully 5 times The written file has the following contents: Movie 0 Movie 1 Movie 2 Movie 3 Movie 4
Eksempel 3: Tar kjøretidsinndata fra brukere for filnavn og fildata ved hjelp av readline-modulen
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);> }> |
Produksjon
Eksempel 4: Tar kjøretidsinndata fra brukere for fildata ved hjelp av readline-modul ved bruk av buffer.
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);> }> |
Produksjon
Henvisning: https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options