如何将Java InputStream传递给支持pos / seek的JRuby io

时间:2013-06-16 14:44:29

标签: ruby jruby inputstream

我需要从java运行时调用(j)ruby脚本,我想将输入流作为参数传递。

在红宝石方面,我使用to_io来转换输入流

io = my_stream.to_io

我收到了这些错误:

org.jruby.exceptions.RaiseException: (Errno::ESPIPE) Illegal seek
at org.jruby.RubyIO.pos(org/jruby/RubyIO.java:1602) ~[jruby-core-1.7.4.jar:na]

问题是,是否有更好的选择将输入流转换为支持pos和seek的io?

1 个答案:

答案 0 :(得分:1)

您的信息流是以管道形式进入的,而且不可搜索。由于seek和pos在管道上无法正常工作,因此必须从管道中读取。

io_stream.read(number_of_bytes)