[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

File.open auto-close

Sammy Larbi

5/29/2008 4:49:00 PM

[Note: parts of this message were removed to make it a legal post.]

I know opening a file and passing a block will execute the block in context
of the file and then close the file.

Example:

File.open("somefile.txt") {|f| the_text = f.read }

After running, somefile.txt will be closed.

I'm wondering if it's ok to read a file like this:

the_text = File.open("somefile.txt").read

Will that close automatically? If not, how would I go about closing it?

Thanks,
Sam

3 Answers

Radoslaw Bulat

5/29/2008 4:58:00 PM

0

Tm8sIGZpbGUgd29uJ3QgYmUgY2xvc2VkICh5b3UgZGlkbid0IHBhc3MgYmxvY2spIGFuZCB5b3Ug
Y2FuJ3QgZG8gaXQKYmVjYXVzZSB5b3UgZG9uJ3QgaGF2ZSByZWZlcmVuY2UgdG8gZmlsZSAobG9z
dCB3aGVuIGNoYWluaW5nKS4KQnV0IHRoZXJlIGlzIGNsYXNzIG1ldGhvZCBGaWxlLnJlYWQgc28g
eW91IGNhbjoKCnRoZV90ZXh0ID0gRmlsZS5yZWFkKCJzb21lZmlsZS50eHQiKQoKOi0pCgotLSAK
UmFkb3OzYXcgQnWzYXQKCmh0dHA6Ly9yYWRhcmVrLmpvZ2dlci5wbCAtIG3zaiBibG9nCg==

Bryan JJ Buckley

5/29/2008 5:00:00 PM

0

It's even easier :) Try

the_text = File.read("somefile.txt")

Sammy Larbi wrote:
> I know opening a file and passing a block will execute the block in context
> of the file and then close the file.
>
> Example:
>
> File.open("somefile.txt") {|f| the_text = f.read }
>
> After running, somefile.txt will be closed.
>
> I'm wondering if it's ok to read a file like this:
>
> the_text = File.open("somefile.txt").read
>
> Will that close automatically? If not, how would I go about closing it?
>
> Thanks,
> Sam
>
>

Sammy Larbi

5/29/2008 5:39:00 PM

0

MjAwOC81LzI5IFJhZG9zs2F3IEJ1s2F0IDxyYWRlay5idWxhdEBnbWFpbC5jb20+OgoKPiBObywg
ZmlsZSB3b24ndCBiZSBjbG9zZWQgKHlvdSBkaWRuJ3QgcGFzcyBibG9jaykgYW5kIHlvdSBjYW4n
dCBkbyBpdAo+IGJlY2F1c2UgeW91IGRvbid0IGhhdmUgcmVmZXJlbmNlIHRvIGZpbGUgKGxvc3Qg
d2hlbiBjaGFpbmluZykuCj4gQnV0IHRoZXJlIGlzIGNsYXNzIG1ldGhvZCBGaWxlLnJlYWQgc28g
eW91IGNhbjoKPgo+IHRoZV90ZXh0ID0gRmlsZS5yZWFkKCJzb21lZmlsZS50eHQiKQo+Cj4KCkR1
aGhoaC4gIEknbSBhIG1vcm9uLiBJIG5ldmVyIHRob3VnaHQgb2YgdGhhdC4KCgpUaGFua3MuCgpJ
bmNpZGVudGFsbHksIEkgbm90aWNlIHRoZSBkb2NzIG9uIHJ1YnktZG9jIGFyZSBzdGlsbCBicm9r
ZW4gZm9yIEZpbGUgY2xhc3MsCndoaWNoIGlzIHRoZSBmaXJzdCBwbGFjZSBJIHRyaWVkIHRvIGxv
b2suID0pCgpUaGFua3MgYWdhaW4uCgpTYW0K