Tất cả những gì tôi muốn làm là lấy tất cả nội dung từ một tệp cục bộ và lưu trữ nó trong một biến. Làm sao?
File.read(@icon.full_filename).each {|l| r += l}
chỉ cho tôi một phần của nó. Trong PHP, tôi mới sử dụng file_get_contents
.
Tất cả những gì tôi muốn làm là lấy tất cả nội dung từ một tệp cục bộ và lưu trữ nó trong một biến. Làm sao?
File.read(@icon.full_filename).each {|l| r += l}
chỉ cho tôi một phần của nó. Trong PHP, tôi mới sử dụng file_get_contents
.
Câu trả lời:
data = File.read("/path/to/file")
Tôi nghĩ bạn nên cân nhắc sử dụng IO.binread("/path/to/file")
nếu bạn có trình thông dịch ruby gần đây (tức là> = 1.9.2)
Bạn có thể tìm IO
tài liệu về lớp học tại đây http://www.ruby-doc.org/core-2.1.2/IO.html
Trả lời câu hỏi của riêng tôi ở đây ... hóa ra đó là một điều khó hiểu duy nhất của Windows xảy ra khi đọc các tệp nhị phân (trong trường hợp của tôi là JPEG) yêu cầu một cờ bổ sung trong lệnh gọi hàm open hoặc File.open. Tôi đã sửa lại nó thành open("/path/to/file", 'rb') {|io| a = a + io.read}
và tất cả đều ổn.
data = File.open("file", "rb") {|io| io.read}