微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ruby文件I / O中的EOFError是什么?

official documentation没有指定.我明白EOFError意味着“结束文件错误”,但究竟是什么意思?如果文件读取器到达文件的末尾,那听起来不像我的错误.

解决方法

EOFError在所有IO中都是方便的,该类是Ruby中所有输入/输出的基础.现在还记得核心的Unix概念:一切都是一个文件.这包括插座.所以,如果你有一些套接字打开并正在读取它,一个特殊的条件可能是遇到文件的结尾.

所有的例子都显示了EOFError的微不足道的使用(同时读取一些文本文件),这些并不真正有用.然而,开始挖掘net / http或其他使用套接字的类,你会看到使用这个异常.

编辑为从net / ftp添加此示例

def getline
  line = @sock.readline # if get EOF,raise EOFError
  line.sub!(/(\r\n|\n|\r)\z/n,"")
  if @debug_mode
    print "get: ",sanitize(line),"\n"
  end
  return line
end

原文地址:https://www.jb51.cc/ruby/266436.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐