Ricerca…


Parametri

Bandiera Senso
"R" Sola lettura, inizia all'inizio del file (modalità predefinita).
"R +" Lettura-scrittura, inizia all'inizio del file.
"W" Solo scrittura, tronca il file esistente a lunghezza zero o crea un nuovo file per la scrittura.
"W +" Lettura-scrittura, tronca il file esistente a lunghezza zero o crea un nuovo file per la lettura e la scrittura.
"un" Solo scrittura, inizia alla fine del file se il file esiste, altrimenti crea un nuovo file per la scrittura.
"A +" Read-write, inizia alla fine del file se il file esiste, altrimenti crea un nuovo file per la lettura e la scrittura.
"B" Modalità file binario. Elimina la conversione EOL <-> CRLF su Windows. E imposta la codifica esterna su ASCII-8BIT se non specificato esplicitamente. (Questo flag può apparire solo in combinazione con i flag precedenti. Ad esempio, File.new("test.txt", "rb") aprirà test.txt in modalità di read-only lettura come file binary .)
"T" Modalità file di testo. (Questo flag può apparire solo in combinazione con i flag precedenti. Ad esempio, File.new("test.txt", "wt") aprirà test.txt in modalità di write-only come file di text .)

Scrivere una stringa in un file

Una stringa può essere scritta in un file con un'istanza della classe File .

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

La classe File offre anche una scorciatoia per le operazioni new e close con il metodo open .

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

Per semplici operazioni di scrittura, una stringa può anche essere scritta direttamente in un file con File.write . Si noti che questo sovrascriverà il file per impostazione predefinita.

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

Per specificare una modalità diversa su File.write , File.write come valore di una chiave chiamata mode in un hash come un altro parametro.

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

Apri e chiude un file

Aprire e chiudere manualmente un file.

# 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

Chiudi automaticamente un file usando un blocco.

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

ottieni un singolo carattere di input

A differenza di gets.chomp questo non aspetterà una nuova riga.

La prima parte dello stdlib deve essere inclusa

require 'io/console'

Quindi è possibile scrivere un metodo di supporto:

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

E 'imporante di uscire se viene premuto il control+c .

Leggendo da 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

Lettura dagli argomenti con 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow