Warum kann Ruby's File#read
et File#readlines
nur einmal verwendet werden?
Zum Beispiel:
txt = File.open "test.txt"
puts txt.read # returns the content
puts txt.read # returns ""
Warum kann Ruby's File#read
et File#readlines
nur einmal verwendet werden?
Zum Beispiel:
txt = File.open "test.txt"
puts txt.read # returns the content
puts txt.read # returns ""
Wenn Sie anrufen File.open
Sie öffnen eine E/A-Strom zur Datei. Intern hat der Stream einen "Cursor", der angibt, aus welchem Teil des Streams Sie zuletzt gelesen haben. Wenn Sie File#read
ohne Längenargument, liest es vom Cursor (der am Anfang der Datei beginnt, wenn Sie sie öffnen) bis zum Ende des Streams, d.h. dem Ende der Datei. Dabei wird auch der Cursor an das Ende der Datei verschoben. Wenn Sie die Funktion read
wieder, dann ist der Cursor immer noch am Ende der Datei, und da es nichts mehr zu lesen gibt, gibt er nichts zurück ( ""
).
Wenn Sie die Datei ein zweites Mal lesen müssen, können Sie den Cursor an den Anfang des Streams zurückbewegen, indem Sie File#rewind
.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.