Fájl írása – node.js

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 írni
  • options (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ódon utf-8
    • mode - az állomány jogosultságának beállítása, alapértelmezett 0o666
    • flag - az írás módja, tehát teljes írás vagy append, alapértelmezett w- í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.