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