
Fájl írása – node.js
Bevezető Fájl műveletek Fájl írás Node.js
2022. április 17.
Egy állomány írása szinte elengedhetetlen bármikor, amikor adatokkal dolgozunk. Hiszen nagyon sokszor az a cél, hogy a feldolgozott adatok később is elérhetőek legyenek számunkra. Szerencsére ez a művelet az egyik legegyszerűbbek közé tartozik.
Nincs más dolgunk mint hogy a beépített fs
-nek a writeFile
függvényét használjuk. Ennek a függvénynek négy bemeneti paramétere van, amiből csak az első kettő a kötelező:
file
- a menteni kívánt állomány neve és elérési útvonala.data
- az állomány tartalma, amit szeretnénk bele írnioptions
(opcionális) - három különböző paramétert lehet átadni neki, de van lehetőség csak egy sima szöveget is adni.encoding
- az állomány kódolása, alapértelmezett módonutf-8
mode
- az állomány jogosultságának beállítása, alapértelmezett0o666
flag
- az írás módja, tehát teljes írás vagyappend
, alapértelmezettw
- írás
callback
- a függvény, amit meghív az állomány írása után
Megjegyzés: Az fs
-nek van sima writeFile
függvénye is, azonban a kettő között a különbség, hogy a sima write
függvény asynchronous
módban fut, tehát a függvény meghívása után a kód futtatás halad tovább és nem várja meg az írás tényleges befejezését. A syncron
változat viszont megvárja, amíg az állomány írása befejeződik és csak utána megy tovább a kód futtatásban.
Akkor nézzünk is egy írást. Egy szöveges állományt írunk, aminek a kódolása utf-8 lesz. Így semmilyen plusz paramétert nem kell beállítani. A kimeneti állományunk legyen data.txt
.
const fs = require('fs')
// Az első paraméter a fájl neve
const file = "data.txt";
// A következő a tartalma
const content = "Ez lesz a szöveges állományunk tartalma.\n Több sorban"
fs.writeFileSync(file , content);
console.log("Sikeres fájl írás");
Hozzáfűzés minta, avagy az append
használata további paraméterekkel
const fs = require('fs')
// Az első paraméter a fájl neve
const file = "data.txt";
for (let i = 1; i < 6; i++) {
fs.writeFileSync(file,
i +". sor \n",
{
encoding: "utf8",
flag: "a+",
mode: 0o666
});
console.log("Az "+i+". sor kiírva");
}
console.log("Összes sor kiírva");
Összegezve, az állomány írás nagyon egyszerű. A legnagyobb különbség a kettő módszer között, hogy az elsőt bármennyi alkalommal futtathatjuk, minden alkalommal törli az állomány addigi tartalmát és azt teljesen újra írja. A másik esetben, pedig hozzá fűz. Láthatjuk, hogy minden futás során csak bővül a tartalma.