Hvordan lese og skrive filer i Ruby

Innholdsfortegnelse

I denne korte opplæringen skal vi se hvordan du leser og skriver til filer ved hjelp av programmeringsspråket Ruby. For å øve skal vi sette noen enkle eksempler. Hvis du er interessert i å se eksempler på hva som skal forklares i dag eller andre ting relatert til Ruby, kan du gå til dokumentasjonen.

Første eksempel
I dette tilfellet lages det en kopimaskin som leser programkoden (files.rb) og kopierer den til en annen fil (copiaFicheros.rb).

 File.open ('files.rb', 'r') do | file1 | File.open ('copiaFicheros.rb', 'w') do | file2 | mens line = file1.gets file2.puts (line) end file2.puts ("# end of copy") end end 
Den første linjen åpner filen som den leses fra (r - les) og vil ha navnefilen1, i den andre åpner vi filen der (w - skrive), husk at alt i filen copiaFicheros.rb blir slettet, hvis du vil at jeg skal skrive etter teksten den har, endre w av (a - legg til). Vi har en løkke som vil lese en linje fra fil1 og skrive den til fil2, når det ikke er mer å lese, skrives en linje for "kopier" -filen.

MerkHvis du vil åpne en fil for lesing og skriving r +.

Andre eksempel
I dette eksemplet skal vi vise filene vi finner fra katalogen der vi kjører koden, det er derfor du vil se Find.find ('./'), som gjør et synkende søk fra katalogen den mottar som en parameter, hvis du ville ha en annen katalog å starte fra, erstatt ./.

 krever 'finn' Find.find ('./') do | f | hvis File.file? (f) deretter setter f ende ende 
Som et første skritt importerer vi funn, som vi trenger. Den andre kodelinjen du ser er den som er forklart ovenfor. I denne koden er vi bare interessert i å vise filene og ikke katalogene, så i den tredje linjen sjekker vi om det er en fil, og i så fall maler vi den i den fjerde. Her er en vei ut av å lansere koden:

Hvilke andre typer lesing / skriving kan vi gjøre som ikke er sett i denne opplæringen:

  • Vi kan bruke tilfeldig tilgang med søkemetoden for IO -klassen.
  • Vi kan lagre og laste objekter (marshalling).
Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave