Ratkaistu: lue tiedosto merkkijonoksi

Viimeisin päivitys: 09/13/2023
Kirjoittaja: Rust SourceTrail

Tiedoston lukeminen merkkijonoksi on yleinen ohjelmointitehtävä, joka voidaan suorittaa helposti Rustissa. Ohjelman koko elinkaaren aikana on usein monia tarpeita olla vuorovaikutuksessa levytiedostoon tallennettujen tietojen kanssa. Hyvin yleinen mahdollinen toimenpide on tiedoston sisällön lukeminen merkkijonoksi. Seuraavassa artikkelissa kerrotaan, kuinka voit tehdä tämän ruosteella.

Rustissa vakiokirjasto tarjoaa menetelmiä, jotka tekevät tiedoston lukemisesta merkkijonoon helppoa. Se on yksinkertainen prosessi ja vaatii vain muutaman rivin koodia. Kuitenkin, kuten muutkin I/O-toimintoihin liittyvät toiminnot, se voi aiheuttaa virheen, ja siksi sitä tulee käsitellä oikein.

Ensimmäinen vaihe tiedoston lukemisessa merkkijonoksi Rustissa sisältää tiedoston avaamisen. Tämä toiminto voidaan suorittaa käyttämällä "std::fs::File::open"-toimintoa. Välität tiedoston polun "open"-funktiolle ja se palauttaa "Result"-tyypin. Jos tiedosto avataan onnistuneesti, palautetaan "Ok(File)", muuten palautetaan virheilmoitus.

let file = Tiedosto::open("polku_tiedostoosi");

Kun tiedosto on avattu, voimme siirtyä seuraavaan vaiheeseen - lukea tiedoston sisältö merkkijonoksi. Tämä tehdään käyttämällä toimintoa "std::fs::read_to_string".

let mut content = String::new();
anna tulos = std::fs::read_to_string(&tiedosto, &muita sisältö);

Funktio "read_to_string" ottaa parametreina viittauksen avattuun tiedostoon ja muuttuvan viittauksen merkkijonoon. Sitten tiedoston sisältö ladataan merkkijonoon. Jos luku onnistuu, palautetaan "Ok(())", muuten se palauttaa virheen.

Käsitellessään virheitä Rustissa, käytämme yleensä "purku"-menetelmää. "Unwrap" joko antaa sinulle arvon, jos "Result" on "Ok", tai paniikki, jos se on "Err".

std::fs-moduuli

Rustin std-laatikko tarjoaa pääsyn laajaan valikoimaan toimintoja, joihin kuuluu std::fs-moduuli, joka tarjoaa toimintoja tiedostojärjestelmän kanssa työskentelemiseen. Tämä moduuli on lähtökohta kaikille niille I/O-toimintoihin, jotka edellyttävät tiedostojen ja hakemistojen käsittelyä. Tärkeä huomioitava seikka on, että kaikki tämän moduulin tarjoamat toiminnot liittyvät I/O-kahvan käyttöikään, mikä tarkoittaa, että ne lakkaavat olemasta voimassa, kun siihen liittyvä kahva pudotetaan.

Tiedostorakenne

Rustissa tiedostoa edustaa "Tiedosto"-rakenne. "Tiedosto"-rakenne tarjoaa menetelmiä tiedoston avaamiseen eri tiloissa (luku, kirjoitus jne.), tiedostosta lukemiseen tai tiedostoon kirjoittamiseen sekä tiedoston käyttöoikeuksien hankkimiseen tai asettamiseen. Kun luet tiedostoa merkkijonoon Rustissa, meidän on ensin avattava tiedosto käyttämällä "File"-rakennetta.

"File::open"-menetelmää käytetään tiedoston avaamiseen vain luku -tilassa. Jos tiedostoa ei ole olemassa tai sitä ei voi avata, se palauttaa virheen, jonka tyyppi on "std::io::Error". Tämän käsittelemiseksi Rust tarjoaa "expect"-toiminnon käsittelemään virheitä.

- Virheiden käsittely

Kuten muutkin järjestelmäohjelmointikielet, Rust käsittelee virheet tärkeänä osana kieltä. Ruoste luokittelee virheet kahteen: korjattavissa ja korjaamattomissa virheissä. Rustilla ei ole poikkeuksia. Sen sijaan sen tyyppi on `Result` palautettaville virheille ja makro `paniikki!` korjaamattomille virheille. Tiedoston lukeminen voi johtaa palautettavaan virheeseen, minkä vuoksi se palauttaa Result-objektin.

Rustissa käytät "Result"-objekteja "expect"-funktiolla, joka kutsuu "panic!"-makron "Err"-muunnelman tapauksessa.

[b]Muista, että Rust-filosofia on varmistaa turvallisuus ja helppokäyttöisyys, mikä toteutuu tässä vahvalla virheenkäsittelyllä ja implisiittisellä muistin käsittelyllä.[/b]

Related viestiä: