Ruby Language
Fil- och I / O-operationer
Sök…
parametrar
Flagga | Menande |
---|---|
"R" | Endast skrivskydd, börjar i början av filen (standardläge). |
"R +" | Läs-skriva, börjar i början av filen. |
"W" | Endast skrivning, avkortar befintlig fil till noll längd eller skapar en ny fil för skrivning. |
"W +" | Läs-skriva, avkortar befintlig fil till noll längd eller skapar en ny fil för läsning och skrivning. |
"A" | Endast skrivning, börjar i slutet av filen om filen finns, annars skapar en ny fil för skrivning. |
"A +" | Läs-skriva, börjar i slutet av filen om filen finns, annars skapar en ny fil för läsning och skrivning. |
"B" | Binär filläge. Undertrycker EOL <-> CRLF-konvertering på Windows. Och sätter extern kodning till ASCII-8BIT såvida inte uttryckligen anges. (Denna flagga kan endast visas i samband med ovanstående flaggor. Till exempel File.new("test.txt", "rb") skulle öppna test.txt i read-only läge som en binary fil.) |
"T" | Textfil-läge. (Denna flagga kan endast visas i samband med ovanstående flaggor. Till exempel File.new("test.txt", "wt") skulle öppna test.txt i write-only läge som text |
Skriva en sträng till en fil
En sträng kan skrivas till en fil med en instans av klassen File
.
file = File.new('tmp.txt', 'w')
file.write("NaNaNaNa\n")
file.write('Batman!\n')
file.close
File
klassen erbjuder också en korthet för de new
och close
operationerna med den open
metoden.
File.open('tmp.txt', 'w') do |f|
f.write("NaNaNaNa\n")
f.write('Batman!\n')
end
För enkla skrivoperationer kan en sträng också skrivas direkt till en fil med File.write
. Observera att detta kommer att skriva över filen som standard.
File.write('tmp.txt', "NaNaNaNa\n" * 4 + 'Batman!\n')
För att ange ett annat läge på File.write
, skicka det som värdet på en nyckel som heter mode
i en hash som en annan parameter.
File.write('tmp.txt', "NaNaNaNa\n" * 4 + 'Batman!\n', { mode: 'a'})
Öppna och stänga en fil
Öppna och stäng en fil manuellt.
# Using new method
f = File.new("test.txt", "r") # reading
f = File.new("test.txt", "w") # writing
f = File.new("test.txt", "a") # appending
# Using open method
f = open("test.txt", "r")
# Remember to close files
f.close
Stäng en fil automatiskt med ett block.
f = File.open("test.txt", "r") do |f|
# do something with file f
puts f.read # for example, read it
end
få en enda karaktär av inmatning
Till skillnad från gets.chomp
detta inte på en ny linje.
Den första delen av stdlib måste inkluderas
require 'io/console'
Sedan kan en hjälpmetod skrivas:
def get_char
input = STDIN.getch
control_c_code = "\u0003"
exit(1) if input == control_c_code
input
end
Det är viktigt att avsluta om man trycker på control+c
.
Läser från STDIN
# Get two numbers from STDIN, separated by a newline, and output the result
number1 = gets
number2 = gets
puts number1.to_i + number2.to_i
## run with: $ ruby a_plus_b.rb
## or: $ echo -e "1\n2" | ruby a_plus_b.rb
Läser från argument med ARGV
number1 = ARGV[0]
number2 = ARGV[1]
puts number1.to_i + number2.to_i
## run with: $ ruby a_plus_b.rb 1 2
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow