ฉันรู้ว่ามี libs ในภาษาอื่นที่สามารถใช้สตริงที่มีพา ธ ไปยังไฟล์ในเครื่องหรือ url และเปิดเป็นสตรีม IO ที่อ่านได้
มีวิธีง่ายๆในการทำทับทิมหรือไม่?
ฉันรู้ว่ามี libs ในภาษาอื่นที่สามารถใช้สตริงที่มีพา ธ ไปยังไฟล์ในเครื่องหรือ url และเปิดเป็นสตรีม IO ที่อ่านได้
มีวิธีง่ายๆในการทำทับทิมหรือไม่?
คำตอบ:
open-uriเป็นส่วนหนึ่งของไลบรารี Ruby มาตรฐานและจะกำหนดลักษณะการทำงานใหม่openเพื่อให้คุณสามารถเปิด url รวมถึงไฟล์ในเครื่องได้ มันส่งกลับFileวัตถุดังนั้นคุณควรจะสามารถที่จะเรียกวิธีการเช่นและreadreadlines
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จะไม่สตรีมไฟล์ดังนั้นคุณจึงไม่สามารถอ่าน 4k แรกได้ open-uriจะอ่านไฟล์ทั้งหมดไปยังหน่วยความจำในขณะที่เปิด
URI.parse('http://www.stackoverflow.com').open { |f| f.read }หากคุณกำลังมองหาวิธีที่จะประกันไม่ได้โทรKernal.open. ยังเข้าใจกฎความปลอดภัยของ rubocop