Ich weiß, dass es Bibliotheken in anderen Sprachen gibt, die eine Zeichenfolge, die entweder einen Pfad zu einer lokalen Datei oder eine URL enthält, als lesbaren E / A-Stream öffnen können.
Gibt es eine einfache Möglichkeit, dies in Rubin zu tun?
open-uri ist Teil der Standard-Ruby-Bibliothek und definiert das Verhalten neu, open
sodass Sie sowohl eine URL als auch eine lokale Datei öffnen können. Es gibt ein File
Objekt zurück, daher sollten Sie in der Lage sein, Methoden wie read
und aufzurufen readlines
.
require 'open-uri'
file_contents = open('local-file.txt') { |f| f.read }
web_contents = open('http://www.stackoverflow.com') {|f| f.read }
content = open("http://example.com").read
open-uri
nicht gestreamt wird, sodass Sie die ersten 4 KB nicht lesen können.open-uri
liest beim Öffnen eine ganze Datei in den Speicher.URI.parse('http://www.stackoverflow.com').open { |f| f.read }
Wenn Sie nach einer Möglichkeit suchen, sich zu versichern, ruft es nicht anKernal.open
. Kommt auch um Rubocop-Sicherheitsregeln herum.