std.fil
std.fil er det enkleste laget mellom programmet ditt og filsystemet: sjekk om en fil finnes, les og skriv tekst, eller les og skriv rå bytes — med disk-kapabilitet.
std.fil er det enkleste laget mellom programmet ditt og filsystemet. Du kan sjekke om en fil finnes, lese hele innholdet som tekst, skrive eller legge til, og for binært innhold lese og skrive rå bytes.
Alle disse operasjonene krever de riktige disk-kapabilitetene — disk.read for å lese, disk.write for å skrive — avgrenset til de mappene du oppgir når du starter programmet. Det er med vilje: et program uten dem kan ikke røre filsystemet ved et uhell, og en avhengighet du ikke har lest kan ikke lese filer den aldri fikk tilgang til.
Når bruker du den
Bruk std.fil til å lese konfigurasjon, lagre resultater eller behandle filer en bruker har lagt igjen. Tekstfunksjonene dekker det vanlige; byte-funksjonene tar seg av bilder og annet binært. Alt krever de riktige disk-kapabilitetene.
Slik kommer du i gang
bruk std.fil som fil
funksjon start() -> heiltall {
hvis fil.finnes("notat.txt") {
skriv(fil.les("notat.txt"))
} ellers {
fil.skriv_fil("notat.txt", "Første linje\n")
}
fil.append("notat.txt", "En linje til\n")
returner 0
}finnes lar deg sjekke før du leser, og append legger til uten å overskrive. Husk disk.read/disk.write når du starter programmet.
Funksjonene
Tenk på funksjonene i tre lag: sjekke (finnes, status), tekst (les, les_fil, skriv_fil, append) og bytes for binært innhold (les_bytes, les_byte_liste, skriv_bytes). slett_fil fjerner en fil.
finnes(sti: tekst) -> bool— Sann hvis fila finnes på stien.skriv_fil(sti: tekst, innhald: tekst) -> heltall— Skriver tekst til fila og overskriver eventuelt tidligere innhold.les_fil(sti: tekst) -> tekst— Leser og gir hele innholdet i fila som tekst.les(sti: tekst) -> tekst— Leser hele fila som tekst (kortform avles_fil).append(sti: tekst, innhald: tekst) -> heltall— Legger tekst til på slutten av fila uten å overskrive.skriv_bytes(sti: tekst, data) -> heltall— Skriver binære data (en byte-buffer) til fila.les_bytes(sti: tekst)— Leser fila som binære data.les_byte_liste(sti: tekst) -> liste_heltall— Leser fila som enliste_heltallmed byte-verdier.slett_fil(sti: tekst) -> bool— Sletter fila og gir sann hvis det lyktes.status(sti: tekst) -> ordbok_tekst— Gir metadata om fila, som om den finnes og hvor stor den er.
Godt å vite
- Uten
disk.read/disk.write-kapabilitet feiler operasjonene medmanglar capability— det er ikke en feil i koden, men kjøretiden som gjør jobben sin. skriv_filoverskriver; vil du beholde det som er der, brukappend.- For bilder og annet binært, bruk
les_bytes/skriv_bytes— tekstfunksjonene er ikke trygge på rå bytes.
std.fil er én av modulene i standardbiblioteket. Alt følger med kjøretiden — ingen installasjon, ingen eksterne avhengigheter. Se også Dokumentasjon for språket og kjøretiden.
Les også
- std.tekststd.tekst er verktøykassen for tekst: søke og sjekke, dele og sette sammen, trimme blanktegn, endre mellom store og små bokstaver, og konvertere til og fra tall.
- std.jsonstd.json lar programmet ditt snakke JSON: parse gjør en JSON-tekst om til en ordbok du kan hente verdier fra trygt, og stringify går den andre veien.
- std.datostd.dato regner med kalenderdatoer som heltall — en ordinal som teller dager. Uten tidssone og klokkeslett slipper du feilene som ellers kommer av sommertid og soner.