# Files

**URL:** <https://www.ruby-forum.com/t/files/188304>\
**Category:** Ruby\
**Created:** [May 10, 2010, 1:48am UTC](https://www.ruby-forum.com/t/files/188304 "2010-05-10T01:48:56Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![crucoba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e8c25b/32.png) [@crucoba](https://www.ruby-forum.com/u/crucoba)\
**Post date:** [May 10, 2010, 1:48am UTC](https://www.ruby-forum.com/t/files/188304/1 "2010-05-10T01:48:56Z")

</div>

Hi folks,

New to Ruby, with little previous coding experience. Anyway, trying out  
a few examples from a tut:

junkfile = File.new(“junk”, “r+”)  
junkfile.write (‘junk line 1’)  
junkfile.write (‘junk line 2’)  
junkfile.rewind  
puts junkfile.readline  
puts junkfile.readline

This is the output:

No such file or directory - junk  
C:/DATA/FILE/CODE/RUBY/prgs/junktest.rb:1:in `initialize’  
Press ENTER to close the window…

What am I doing wrong?

Thanks.

---

<div class="post-metadata">

**Author:** ![crucoba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e8c25b/32.png) [@crucoba](https://www.ruby-forum.com/u/crucoba)\
**Post date:** [May 10, 2010, 2:50am UTC](https://www.ruby-forum.com/t/files/188304/2 "2010-05-10T02:50:12Z")

</div>

r+ will open the file and give you read-write access iff the file is  
exists. w+ and a+ create new files if it doesn’t exist, unlike r+. (w+  
truncates, a+ appends)

Siddarth

---

<div class="post-metadata">

**Author:** ![crucoba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e8c25b/32.png) [@crucoba](https://www.ruby-forum.com/u/crucoba)\
**Post date:** [May 10, 2010, 2:50am UTC](https://www.ruby-forum.com/t/files/188304/3 "2010-05-10T02:50:48Z")

</div>

- iff the file exists.

Siddarth

On Sun, May 9, 2010 at 8:49 PM, Siddarth Chandrasekaran

---

<div class="post-metadata">

**Author:** ![crucoba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e8c25b/32.png) [@crucoba](https://www.ruby-forum.com/u/crucoba)\
**Post date:** [May 10, 2010, 9:52am UTC](https://www.ruby-forum.com/t/files/188304/4 "2010-05-10T09:52:46Z")

</div>

Thanks. Question #2.

How can I write/read a specificied line from the file?

---

<div class="post-metadata">

**Author:** ![crucoba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e8c25b/32.png) [@crucoba](https://www.ruby-forum.com/u/crucoba)\
**Post date:** [May 10, 2010, 10:22am UTC](https://www.ruby-forum.com/t/files/188304/5 "2010-05-10T10:22:04Z")

</div>

Or you could read it into an array, mess with it and write it back,  
although that’s pretty ugly:

array = File.open(“junk”).collect

Siddarth

---

<div class="post-metadata">

**Author:** ![crucoba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e8c25b/32.png) [@crucoba](https://www.ruby-forum.com/u/crucoba)\
**Post date:** [May 10, 2010, 10:20am UTC](https://www.ruby-forum.com/t/files/188304/6 "2010-05-10T10:20:18Z")

</div>

Hi David,

the only way I could think of right now would be to read all lines and  
increment a counter while reading.

Am 10.05.2010 09:52, schrieb David Chapman:

---

<div class="post-metadata">

**Author:** ![crucoba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e8c25b/32.png) [@crucoba](https://www.ruby-forum.com/u/crucoba)\
**Post date:** [May 10, 2010, 11:23am UTC](https://www.ruby-forum.com/t/files/188304/7 "2010-05-10T11:23:38Z")

</div>

Thanks guys.

---

<div class="post-metadata">

**Author:** ![crucoba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e8c25b/32.png) [@crucoba](https://www.ruby-forum.com/u/crucoba)\
**Post date:** [May 10, 2010, 10:29am UTC](https://www.ruby-forum.com/t/files/188304/8 "2010-05-10T10:29:05Z")

</div>

Hi,

how about

File.readlines(“data.txt”)[n]?

Thorsten

Am 10.05.2010 10:21, schrieb Siddarth Chandrasekaran:

---

<div class="post-metadata">

**Author:** ![crucoba](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e8c25b/32.png) [@crucoba](https://www.ruby-forum.com/u/crucoba)\
**Post date:** [May 10, 2010, 11:48am UTC](https://www.ruby-forum.com/t/files/188304/9 "2010-05-10T11:48:43Z")

</div>

On Mon, May 10, 2010 at 10:28 AM, Thorsten H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi,
> 
> how about
> 
> File.readlines(“data.txt”)[n]?  
> File.open … do | f |  
> f.each\_with\_index do | line, line\_nb |  
> …  
> end  
> end  
> HTH  
> Robert
