Fájl olvasása – node.js

Fájl olvasása – node.js

Bevezető Fájl műveletek Fájl olvasás Node.js

2022. április 17.

Az egyik legfontosabb I/O művelet a fájl olvasása. Ezt az automatizálásai folyamatok során kimagaslóan sokat használjuk. Sok esetben egy vagy több állományunk is lehet, amiket fel szeretnénk dolgozni és amivel további teendőink is vannak.

Itt elsőre nagyon egyszerű dolgokra kell gondolni. Tegyük fel, hogy a feladat, amit el kell végezned mondjuk havonta egyszer az egy állapot frissítése. Tehát, kapsz egy szöveges állományt, amiben fel vannak sorolva különböző kategóriák és az adott kategóriákban található elemek száma, pl.:

Szórakozás: 12
Elektronika: 84
Háztartás: 59
Egyéb: 21

Tudjuk, hogy ezekkel további teendő van, amit idáig kézzel újra és újra megcsináltunk, például egy Excel táblában frissíteni a készletet a megkapott darabszámok alapján. A minta egyszerű jelen esetben, mert csak négy elem van, de a valóságban akár száz vagy még több elemet is tartalmazhat, aminek az átvezetése rengeteg időt igényel. A jelen példában a további teendő lényegtelen, mert a tartalom beolvasása a célunk így csak erre fókuszálunk.

File System – Node

A fájlok beolvasására az fs (File System) modult mutatom meg, ami a node-ban alapból benne van.

Először is meghívjuk az adott csomagot, hogy tudjuk használni:

const fs = require('fs')

Ezt követően nézzük meg a beolvasást, amit a feadFileSync függvénnyel valósítunk meg. Azért Sync függvény, mert szinkronban fut, így nincs szükségünk a folyamat befejezésének megvárására.

fs.readFileSync('/fájl teljes elérése/teszt.txt', 'utf8')

Két paramétert adunk át: az első a fájl elérése, a második pedig egy opcionális paraméter, a fájl karakter kódolása.

Nézzük meg, hogy is néz ki ez egyben egy futtatható állományban.

const fs = require('fs')

try {
	// Az első paraméter a fájl elérése majd megadjuk, hogy milyen a  
	// karakter kódolása a beolvasandó fájlnak
	const data = fs.readFileSync('/fájl teljes elérése/teszt.txt', 'utf8')
	//Adatok kiírása, hogy lássuk mi található benne
	console.log(data)
} catch (err) {
	// Fontos, hogy a try esetében ide a catch ágba jön a futás hiba esetén, 
	//ha egy ilyen hibát elkaptunk, akkor azt irassuk is ki.
	console.error(err)
}

Lefuttatás során, ha a programnak jól adtuk meg a fájl útvonalát, akkor ki kell írnia a fájl tartalmát. Futtassuk is a node fájlnév.js paranccsal és nézzük az eredményt:

$ node read.js
Szórakozás: 12
Elektronika: 84
Háztartás: 59
Egyéb: 21