我想迭代读取文件中的固定数量的字节,并返回它们如何在Ruby中一次读取文件,字节?
我的代码如下。我从互联网上的一个例子中得到它
File.open('textfile.txt') do |file|
while (buffer = file.read(size)) do
yield buffer
end
end
我得到的错误没有给出块。
我想迭代读取文件中的固定数量的字节,并返回它们如何在Ruby中一次读取文件,字节?
我的代码如下。我从互联网上的一个例子中得到它
File.open('textfile.txt') do |file|
while (buffer = file.read(size)) do
yield buffer
end
end
我得到的错误没有给出块。
那么,那是因为没有块给出。您可以替换yield buffer
与puts buffer
(或任何你想要的操作),或创建一个单独的方法以代码块:
def read_file
File.open('textfile.txt') do |file|
while (buffer = file.read(size)) do
yield buffer
end
end
end
,并调用它
read_file do |data|
// do something with data
puts data
end
加入正常的参数(如文件名或块大小)至read_file
,如有必要。
我不知道你在那里做什么。产量是你想要反复调用的块内使用的东西,就像一个枚举器。做这样的事情要容易得多。
File.open('test.txt') do|file|
until file.eof?
buffer = file.read(10)
# Do something with buffer
puts buffer
end
end
红宝石食谱(http://oreilly.com/catalog/9780596523695)具有优秀的标准食谱和常用任务的惯用方式。 – Swanand 2010-08-27 07:05:07