Ich möchte nur den gesamten Inhalt aus einer lokalen Datei abrufen und in einer Variablen speichern. Wie?
File.read(@icon.full_filename).each {|l| r += l}
gibt mir nur einen Teil davon. In PHP habe ich gerade verwendet file_get_contents
.
ruby-on-rails
ruby
Steven
quelle
quelle
Antworten:
data = File.read("/path/to/file")
quelle
Ich denke, Sie sollten in Betracht ziehen,
IO.binread("/path/to/file")
wenn Sie einen aktuellen Ruby-Interpreter haben (dh> = 1.9.2).Die
IO
Klassendokumentation finden Sie hier http://www.ruby-doc.org/core-2.1.2/IO.htmlquelle
Die Beantwortung meiner eigenen Frage hier ... stellt sich heraus, dass es sich nur um eine Windows-Eigenart handelt, die beim Lesen von Binärdateien (in meinem Fall einem JPEG) auftritt und ein zusätzliches Flag im Funktionsaufruf open oder File.open erfordert. Ich habe es überarbeitet
open("/path/to/file", 'rb') {|io| a = a + io.read}
und alles war in Ordnung.quelle
data = File.open("file", "rb") {|io| io.read}