2010-01-19 92 views
10

是否可以將字符串轉換爲文件而不寫入磁盤?Ruby將字符串轉換爲文件

我想用一個任意文件的字符串無所不在工作:

input = "123" 
if (ARGV.length == 1) 
    input = File.open(ARGV[0]) 

    #do stuff with input 
end 

我可以創建一個字符串的文件(不寫入磁盤)?否則,當它是一個字符串時,我將無法執行input.readline()

+0

請在您的示例結尾添加結束關鍵字;) – Alexey 2010-05-05 21:15:04

回答

28

您可以使用StringIO1.8.71.9.3)來創建一個IO1.8.71.9.3)對象(即,就像一個文件的對象)從一個字符串:

file = StringIO.new("123") 
line = file.readline 
file.close 
5

StringIO可用於給字符串提供類似文件的界面。

2

的StringIO的是不錯,你也可以做到這一點使用塊:

StringIO.open(string) do |file| 
    # do stuff here 
end 

我喜歡這個ALT超過file.close