Szukaj…


Parametry

Flaga Znaczenie
„r” Tylko do odczytu, zaczyna się na początku pliku (tryb domyślny).
„r +” Odczyt i zapis, zaczyna się na początku pliku.
„w” Tylko do zapisu, obcina istniejący plik do zerowej długości lub tworzy nowy plik do zapisu.
„w +” Odczyt-zapis, obcina istniejący plik do zera lub tworzy nowy plik do odczytu i zapisu.
"za" Tylko do zapisu, zaczyna się na końcu pliku, jeśli plik istnieje, w przeciwnym razie tworzy nowy plik do zapisu.
„a +” Odczyt-zapis, zaczyna się na końcu pliku, jeśli plik istnieje, w przeciwnym razie tworzy nowy plik do odczytu i zapisu.
"b" Tryb pliku binarnego. Pomija konwersję EOL <-> CRLF w systemie Windows. I ustawia zewnętrzne kodowanie na ASCII-8BIT, chyba że zostanie to wyraźnie określone. (Ta flaga może pojawić się tylko w połączeniu z powyższymi flagami. Na przykład File.new("test.txt", "rb") otworzyłby test.txt w trybie read-only jako plik binary .)
„t” Tryb pliku tekstowego. (Ta flaga może pojawić się tylko w połączeniu z powyższymi flagami. Na przykład File.new("test.txt", "wt") otworzyłby test.txt w trybie write-only jako plik text .)

Zapisywanie ciągu do pliku

Ciąg znaków można zapisać do pliku za pomocą instancji klasy File .

file = File.new('tmp.txt', 'w')
file.write("NaNaNaNa\n")
file.write('Batman!\n')
file.close

Klasa File oferuje także skrót dla new i close operacji metodą open .

File.open('tmp.txt', 'w') do |f|
  f.write("NaNaNaNa\n")
  f.write('Batman!\n')
end

W przypadku prostych operacji zapisu ciąg można również zapisać bezpośrednio do pliku za pomocą File.write . Pamiętaj, że spowoduje to zastąpienie pliku domyślnie.

File.write('tmp.txt', "NaNaNaNa\n" * 4 + 'Batman!\n')

Aby określić inny tryb w File.write , przekaż go jako wartość klucza o nazwie mode w skrócie jako inny parametr.

File.write('tmp.txt', "NaNaNaNa\n" * 4 + 'Batman!\n', { mode: 'a'})

Otwieranie i zamykanie pliku

Ręcznie otwórz i zamknij plik.

# 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

Automatycznie zamknij plik za pomocą bloku.

f = File.open("test.txt", "r") do |f|
  # do something with file f
  puts f.read # for example, read it
end

uzyskać jeden znak wejściowy

W przeciwieństwie do gets.chomp nie będzie czekać na nową linię.

Pierwsza część pakietu stdlib musi być dołączona

require 'io/console'

Następnie można napisać metodę pomocniczą:

def get_char
  input = STDIN.getch
  control_c_code = "\u0003"
  exit(1) if input == control_c_code
  input
end

Ważne jest, aby wyjść, jeśli naciśnięty zostanie klawisz control+c .

Czytanie ze 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

Czytanie z argumentów z 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow