Buscar..


Parámetros

Bandera Sentido
"r" Solo lectura, comienza al principio del archivo (modo predeterminado).
"r +" Lectura-escritura, comienza al principio del archivo.
"w" Solo escritura, trunca el archivo existente a longitud cero o crea un nuevo archivo para escribir.
"w +" Leer-escribir, trunca el archivo existente a longitud cero o crea un nuevo archivo para leer y escribir.
"una" Solo escritura, comienza al final del archivo si el archivo existe, de lo contrario crea un nuevo archivo para escribir.
"a +" Lectura-escritura, comienza al final del archivo si el archivo existe, de lo contrario crea un nuevo archivo para leer y escribir.
"segundo" Modo de archivo binario. Suprime la conversión EOL <-> CRLF en Windows. Y establece la codificación externa en ASCII-8BIT a menos que se especifique explícitamente. (Este indicador solo puede aparecer junto con los indicadores anteriores. Por ejemplo, File.new("test.txt", "rb") abriría test.txt en modo de read-only como un archivo binary ).
"t" Modo de archivo de texto. (Este indicador solo puede aparecer junto con los indicadores anteriores. Por ejemplo, File.new("test.txt", "wt") abriría test.txt en modo de write-only como un archivo de text ).

Escribir una cadena en un archivo

Se puede escribir una cadena en un archivo con una instancia de la clase de File .

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

La clase File también ofrece una forma abreviada de las operaciones new y close con el método open .

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

Para operaciones de escritura simples, una cadena también se puede escribir directamente en un archivo con File.write . Tenga en cuenta que esto sobrescribirá el archivo de forma predeterminada.

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

Para especificar un modo diferente en File.write , páselo como el valor de una clave llamada mode en un hash como otro parámetro.

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

Abrir y cerrar un archivo

Abrir y cerrar manualmente un archivo.

# 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

Cerrar automáticamente un archivo utilizando un bloque.

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

obtener una sola char de entrada

A diferencia de gets.chomp esto no esperará una nueva línea.

La primera parte del stdlib debe ser incluida

require 'io/console'

Entonces se puede escribir un método auxiliar:

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

Es importante salir si se presiona control+c .

Lectura de 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

Leyendo de argumentos 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow