我想迭代地读取文件中固定数量的字节,然后返回它们
我的代码如下.我从互联网上的一个例子中得到了它
File.open('textfile.txt') do |file|
while (buffer = file.read(size)) do
yield buffer
end
end
Run Code Online (Sandbox Code Playgroud)
我得到错误没有给出阻止.
嗯,那是因为没有给出阻止.你可以替换yield buffer使用puts buffer(或任何你想要的操作),或创建一个单独的方法以代码块:
def read_file
File.open('textfile.txt') do |file|
while (buffer = file.read(size)) do
yield buffer
end
end
end
Run Code Online (Sandbox Code Playgroud)
并称之为这样
read_file do |data|
// do something with data
puts data
end
Run Code Online (Sandbox Code Playgroud)
read_file如有必要,添加常规参数(如文件名或块大小).
我不知道你在那里想要做什么.在你想要重复调用的块中使用yield,就像枚举器一样.做这样的事情要容易得多.
File.open('test.txt') do|file|
until file.eof?
buffer = file.read(10)
# Do something with buffer
puts buffer
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9670 次 |
| 最近记录: |