Skapa en ny fil med Ruby
Nya filer i Ruby skapas med new-metoden i File-klassen.
New-metoden tar två argument, det första är namnet på filen som ska skapas och det andra är det läge som filen ska öppna.
Här är en lista över olika sätt att öppna en fil på:
r Endast läsning
r+ Läs och skrivrättigheter.
w Endast skrivning.
w+ Läs och skrivning
a Endast skrivning vid slutet av filen.
a+ Läs-och skrivrättigheter. Skrivning läggs till vid slutet.
b Binär fil. Endast för Windows/Dos
Med denna information i åtanke kan vi därför skapa en ny fil i “write”-läge enligt följande.
>> File.new("test.txt","w")
=> #<File:test.txt>
Öppna filer
Med hjälp av open-metoden av File-klassen kan man öppna befintliga filer:
>> fil = File.open("test.txt")
=> #<File:test.txt>
Observera att befintliga filer kan öppnas i olika lägen som anges i tabellen ovan. Till exempel kan vi öppna en fil i skrivskyddat läge:
>> fil = File.open("test.txt","r")
=> #<File:test.txt>
Det är också möjligt att fastställa om en fil redan är öppen med closed? metoden:
>> fil.closed?
=> false
Slutligen kan vi stänga en fil med close-metoden:
>> fil = File.open("test.txt","r")
=> #<File:test.txt>
>> fil.close
=> nil
>> fil.closed?
=> true
Läsa och skriva filer
När vi har öppnat en befintlig fil eller skapat en ny fil måste vi kunna läsa från och skriva till den filen. Vi kan läsa rader från en fil med antingen readline eller each metoder:
>> fil = File.open("test.txt")
=> #<File:test.txt>
>> fil.readline
=> "Haslogic blogg om Ruby on Rails och Webbutveckling"
>>
Med each-metoden kan vi läsa hela filen:
>> fil = File.open("test.txt")
=> #<File:test.txt>
>> fil.each { |x| print x }
Haslogic blogg om Ruby on Rails och Webbutveckling
Ruby kurs för nybörjare
Ruby on Rails för nybörjare kommer snart
=> #<File:test.txt>
>>
Med metoden puts kan vi skriva en rad i taget till en fil.
>> fil = File.new("test.txt","w+")
=> #<File:test.txt>
>> fil.puts("Detta fungerar ju")
=> nil
>> fil.puts("Rad tva")
=> nil
>> fil.puts("Rad tre")
=> nil
>> fil.puts("Och rad fyra")
=> nil
>> fil = File.open("test.txt")
=> #<File:test.txt>
>> fil.each { |x| print x}
Detta fungerar ju
Rad tva
Rad tre
Och rad fyra
=> #<File:test.txt>
>>
Skriv ny kommentar



