official documentationは指定しません。私はEOFErrorが "ファイルの終わりのエラー"を意味することを理解しますが、それはどういう意味ですか?ファイルリーダーがファイルの最後に到達した場合、それは私のエラーのようには聞こえません。RubyファイルI/OのEOFErrorとは何ですか?
9
A
答えて
13
例外EOFErrorがIO、すべての入力/出力に基づいあるクラスの全てに便利である。
import_file = File.open(filename)
begin
while (line = import_file.readline)
sline = FasterCSV.parse_line(line)
# Do stuff with sline
end
rescue EOFError
# Finished processing the file
end
同じことは例外EOFErrorことなく達成することができる:例えば
ルビーで。また、Unixの核心概念を覚えておいてください。すべてがファイルです。これにはソケットも含まれます。だから、あなたがソケットを開いていてそこから読んでいるのであれば、例外的にファイルの終わりに遭遇するかもしれません。
すべての例では、実際には役に立たないEOFError(テキストファイルを読みながら)を使用しています。しかし、net/httpやソケットを大量に使用する他のクラスを通して掘り出し始めると、この例外が使用されることになります。
編集ネット/ 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
9
EOFError(ファイルの終了エラー)は、ファイルの終わりを既に参照しているファイルオブジェクトに対して操作を実行しようとするとスローされます。この例では、行が存在しないときはreadline
にしようとしています。
File.open(filename).each do |line|
sline = FasterCSV.parse_line(line)
# Do stuff with sline
end
関連する問題
- 1. rubyでファイルをダウンロードするときの断続的なEOFError OpenURI
- 2. org.apache.commons:commons-ioとcommons-io:commons-ioの違いは何ですか?
- 3. RDO for iOとは何ですか?
- 4. JavaのファイルIOの最適な方法は何ですか
- 5. 単純な言葉で、IOとノンブロッキングIOをブロックするのは何ですか?
- 6. 非メインスレッドで非同期ioとdo ioの違いは何ですか?
- 7. ruby pipe、IOとstderrリダイレクト
- 8. Process.forkはRubyのファイルioに影響を与えるはずですか?
- 9. Rubyでは[....]とは何ですか?
- 10. Rubyでは「レシーバ」とは何ですか?
- 11. Rubyの "undef"オブジェクトとは何ですか?
- 12. Rubyで$$とは何ですか?
- 13. Rubyで$ _ [0]、$ _ [1]とは何ですか?
- 14. Ruby on Railsとは何ですか?
- 15. Ruby - ppp.rbとは何ですか?
- 16. ruby-asanaクライアントとは何ですか?
- 17. Ruby on Railsとは何ですか?
- 18. Ruby on Railsアクションケーブルアダプターとは何ですか?
- 19. RubyとRuby on Railsの違いは何ですか?
- 20. RubyとRuby on Railsの違いは何ですか?
- 21. ruby、ruby on hilsとhtmlの関係は何ですか?
- 22. 同期とIOファイル
- 23. python pickle.load()pklファイルがEOFErrorをスローする
- 24. 「$」とは何ですか? Rubyの意味ですか?
- 25. $とは何ですか? Rubyの意味ですか?
- 26. Rubyでは "<< - "とは何ですか?たとえば
- 27. Ruby IOストリームでの再割り当てと再オープンの違い
- 28. Rubyの@@ double_at_variableのポイントは何ですか?
- 29. Rubyのスペースのルールは何ですか?
- 30. PerlのIO :: Pipeコンストラクタの引数は何ですか?
+1良い答えです。 – Swanand
ありがとうSwanand。 /usr/lib/ruby/1.8/net/ -name * .rb -exec grep EOFError/dev/null '{}' \; "という名前のコードは、 –