Table of Contents

Input / Output

Lesen von STDIN

Ausgabe auf STDOUT

Kommandozeilenargumente

argv.rb
 p ARGV
> ruby argv.rb hello 1 2 
["hello", "1", "2"]
>

Lesen / Schreiben in Dateien

Billige und flexible Variante: Redirection auf der Kommandozeile

  # Inhalt von inputDaten.txt wird STDIN:
  ruby meinprogramm.rb < inputDaten.txt
  # STDOUT wird in outputDaten.txt geschrieben
  ruby meinprogramm.rb > outputDaten.txt
  # Kombiniert
  ruby meinprogramm.rb < inputDaten.txt > outputDaten.txt
 
  # Es ist sogar möglich, den Output eines Programms als Input des nächsten zu verwenden
  ruby datenmais.rb | ruby maisfresser.rb

Öffnen einer Datei

  daten = File.new("inputDaten.txt", "r")  # Zum Lesen öffnen (read)
  ersteZeile = daten.gets.chomp  # Erste Zeile als String, "\n" entfernt
  rest = daten.readlines.map{|l| l.chomp}  # Rest in Array, "\n" entfernt
  daten.close  # Datei wieder schliessen
 
  # Alternative (schliessen automatisch)
  ersteZeile=""  # Sonst lebt die Variable nur im Block und danach nicht mehr.
  rest = []
  File.new("inputDaten.txt", "r") {|daten|
    ersteZeile = daten.gets.chomp  # Erste Zeile als String, "\n" entfernt
    rest = daten.readlines.map{|l| l.chomp}  # Rest in Array, "\n" entfernt
  } # Datei automatisch geschlossen.
 
  # Ausgabe:
  File.new("outputDaten.txt", "w") {|daten|   # Ausgabe (write)
    daten.puts ersteZeile
    daten.puts rest
  } # Datei automatisch geschlossen.