|
File handling in Ruby is done with the File subclass of IO class.
Creating a new file.The new and open methods
A new file is created by using the "new" method on the File class.
file = File.new("myfile", "rw")
# ... operations to be done on file
file.close
In the code sample above, a file named "myfile" is created with read/write permissions assigned.This will allow you to read from the file or write into it.You should note that in case of a raised exception while processing the file, file.close may not happen as planned, but later along the way,in the meantime holding onto the allocated resources.
Alternatively, you can use the "open" method which is very similar to the "new" one, except:in case a block is associated
with the method call, instead of returning the new object, it invokes the block, passing the newly opened File as a parameter.The file is closed when the block exits.
In the case of using the "open" method, if an exception is raised inside a block, the file is closed before the exception propagates to the caller.
file = File.open("myfile", "rw")
# ... operations to be done on file
file.close
Reading/writing to files
The gets method
File.open("myfile") do |file|
while content = file.gets
# ... operations on file
end
end
This code reads from the file as long as there is "something" in the file, note the "while content = file.gets" line.
The each_byte method
To be used when you need to process each character in an expression.Here's a sample:
"Sample code".each_byte {|b| puts b.chr}
Obviously, it can be used on files also, to read characters and process sequentially.
File.open("myfile") do |file|
file.each_byte {....}
end
The each_line method
Similar to each_byte, read one line at a time.
|