2010-01-19 8 views
10

Est-il possible de convertir une chaîne en un fichier sans l'écrire sur le disque?Ruby Convertir une chaîne en fichier

Je voudrais travailler ubiquitaire soit avec une chaîne d'un fichier:

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

    #do stuff with input 
end 

Puis-je créer un fichier à partir d'une chaîne (sans écriture sur le disque)? Sinon, je ne serais pas capable de faire input.readline() quand c'est une chaîne.

+0

s'il vous plaît ajouter le mot-clé fin à la fin de votre exemple;) – Alexey

Répondre

28

Vous pouvez utiliser StringIO (1.8.7, 1.9.3) pour créer un IO (1.8.7, 1.9.3) objet (qui est un objet qui agit comme un fichier) sur une chaîne:

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

StringIO peut être utilisé pour donner une interface de type fichier aux chaînes.

2

Le StringIO est agréable, vous pouvez aussi le faire en utilisant un bloc:

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

J'aime alt sur file.close

Questions connexes