假设你关闭一个红宝石File对象
f = File.open('testfile')
f.close
f.each_byte { ... } #=> IOError: closed stream
Run Code Online (Sandbox Code Playgroud)
我知道你可以重新打开流f = File.open(f),但有没有办法通过IO对象上的方法重新打开流?
例如
f.close
f.open_again
f.each_byte { ... }
Run Code Online (Sandbox Code Playgroud)
IO#close 文件说:
关闭→无
关闭ios并刷新对操作系统的任何挂起写入.该流不可用于任何进一步的数据操作; 如果进行了此类尝试,则会引发IOError.
这意味着您无法再次重新打开相同的流,因为它可能已经关闭了底层文件描述符.
是什么reopen给了你,是你可以让这个对象指向另一个流/文件.如果您的IO对象绑定到常量,但是您需要关闭该文件并重新打开另一个文件,则可能很有用.
| 归档时间: |
|
| 查看次数: |
2985 次 |
| 最近记录: |