Az ERLANG programozási nyelv

Fájlműveletek

Bevezetés

Fájlok elérése és manipulációja Erlangban IoDevice-okkal történik (fájlokat reprezentáló kifejezések, úgy mint Standard Input és Output, vagy lemezen lévő fájlok). Az IoDevice-okhoz asszociált fizikai fájlokat be kell zárnunk, ha már nem használjuk. Az IoDevices-okat a hagyományos jogosultságokkal nyithatjuk meg (read, write, append, raw).

Minden I/O eljárásnak megadhatunk egy IoDevice opcionális paramétert, ami ha nincs megadva akkor a standard inputot (vagy standard outputot) fogja használni.

1> {ok, FileId} = file:open("hello.txt", [read, write]).
{ok, <0.187.0>}
2> io:fwrite(FileId, "~s~n", ["Hello there"]).
ok
3> file:close(FileId).
ok

Random hozzáférést tudunk elérni a position eljárással. Ezt az eljárást használhatjuk az aktuális IO eszköz pozíciójának lekérdezésére, vagy annak megváltoztatására is.

16 byte beolvansása az 5. karakter után:

4> {ok,FDev2} = file:open("hello.txt", [read]).
{ok,<0.31.0>}
5> file:position(FDev2, 5).
{ok,5}
6> Str = file:read(FDev2, 16).
{ok," there\n"}

Egy sor beolvasása

get_line([IoDevice,] Prompt) -> Data | eof | {error,Reason}

Típusok:
IoDevice = io_device()
Prompt = atom() | string()
Data = [ unicode_char() ] | unicode_binary()

Beolvas egy sort a standard inputról ( vagy más IoDevice-ról), és a Prompt-hoz konkatenálja. Lehetséges visszatérési értékek: Data A fájl egy sora karakterláncként új sorral terminálva (vagy end of file). eof Fájl vége esetén.

Fájl vagy könyvtár törlése

1> file:delete("/this/file/will/soon/be/gone.txt"). 2> file:del_dir("/this/dir/will/soon/be/gone").