สิ่งที่ฉันต้องการทำคือรับเนื้อหาทั้งหมดจากไฟล์ในเครื่องและเก็บไว้ในตัวแปร อย่างไร?
File.read(@icon.full_filename).each {|l| r += l}
ให้ฉันเป็นเพียงส่วนหนึ่งเท่านั้น ใน PHP ฉันเพิ่งใช้file_get_contents
ไฟล์.
สิ่งที่ฉันต้องการทำคือรับเนื้อหาทั้งหมดจากไฟล์ในเครื่องและเก็บไว้ในตัวแปร อย่างไร?
File.read(@icon.full_filename).each {|l| r += l}
ให้ฉันเป็นเพียงส่วนหนึ่งเท่านั้น ใน PHP ฉันเพิ่งใช้file_get_contents
ไฟล์.
คำตอบ:
data = File.read("/path/to/file")
ฉันคิดว่าคุณควรพิจารณาใช้IO.binread("/path/to/file")
หากคุณมีล่ามทับทิมล่าสุด (เช่น> = 1.9.2)
คุณสามารถดูIO
เอกสารประกอบการเรียนได้ที่นี่http://www.ruby-doc.org/core-2.1.2/IO.html
ตอบคำถามของฉันเองที่นี่ ... ปรากฎว่าเป็นเพียงมุมแหลมของ Windows เท่านั้นที่เกิดขึ้นเมื่ออ่านไฟล์ไบนารี (ในกรณีของฉันคือ JPEG) ที่ต้องใช้ค่าสถานะเพิ่มเติมในการเรียกฟังก์ชันเปิดหรือ File.open ฉันแก้ไขเป็นopen("/path/to/file", 'rb') {|io| a = a + io.read}
และทุกอย่างเรียบร้อยดี
data = File.open("file", "rb") {|io| io.read}