Recherche…


Paramètres

Drapeau Sens
"r" Lecture seule, commence au début du fichier (mode par défaut).
"r +" Lecture-écriture, commence au début du fichier.
"w" Write-only, tronque le fichier existant à la longueur zéro ou crée un nouveau fichier pour l'écriture.
"w +" Lecture-écriture, tronque le fichier existant à une longueur nulle ou crée un nouveau fichier pour la lecture et l’écriture.
"une" Écriture seule, commence à la fin du fichier si le fichier existe, sinon crée un nouveau fichier pour l'écriture.
"a +" Lecture-écriture, commence à la fin du fichier si le fichier existe, sinon crée un nouveau fichier pour la lecture et l'écriture.
"b" Mode fichier binaire. Supprime la conversion EOL <-> CRLF sous Windows. Et définit le codage externe sur ASCII-8BIT sauf si explicitement spécifié. (Cet indicateur ne peut apparaître qu'avec les indicateurs ci-dessus. Par exemple, File.new("test.txt", "rb") ouvrirait test.txt en mode read-only en tant que fichier binary .)
"t" Mode fichier texte. (Cet indicateur ne peut apparaître qu'avec les indicateurs ci-dessus. Par exemple, File.new("test.txt", "wt") ouvrirait test.txt en mode write-only en tant que fichier text .)

Ecrire une chaîne dans un fichier

Une chaîne peut être écrite dans un fichier avec une instance de la classe File .

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

La classe File offre également un raccourci pour les opérations new et close avec la méthode open .

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

Pour les opérations d'écriture simples, une chaîne peut également être écrite directement dans un fichier avec File.write . Notez que cela écrasera le fichier par défaut.

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

Pour spécifier un mode différent sur File.write , transmettez-le comme valeur d'un mode appelé clé dans un hachage comme autre paramètre.

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

Ouvrir et fermer un fichier

Ouvrez et fermez manuellement un fichier.

# 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

Ferme automatiquement un fichier en utilisant un bloc.

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

obtenir un seul caractère d'entrée

Contrairement à gets.chomp cela n'attendra pas une nouvelle ligne.

La première partie du stdlib doit être incluse

require 'io/console'

Ensuite, une méthode d'assistance peut être écrite:

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

Il est important de sortir si control+c bouton control+c est enfoncé.

Lecture 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

Lecture des arguments avec 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow