Ruby Language
Opérations sur les fichiers et les E / S
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