如何将org.jruby.RubyString转换为java.io.InputStream

我正在使用JRuby和Java库。 Java方法的输入参数的类型是InputStream,我使用JRuby来调用这个方法,我怎样才能将类似“/directory/item.txt”的内容恢复为Java方法的InputStream? 谢谢。

使用RubyString#to_java_bytes将字符串转换为字节,然后将其包装在java.io.ByteArrayInputStream ,这是java.io.InputStream的子类:

 >> "an arbitrary string" "an arbitrary string" >> _.to_java_bytes => byte[97, 110, 32, 97, 114, 98, 105, 116, 114, 97, 114, 121, 32, 115, 116, 114, 105, 110, 103]@7133da86 >> java.io.ByteArrayInputStream.new(_) => # >> _.java_kind_of? java.io.InputStream => true 

一次全部:

 inputstream = java.io.ByteArrayInputStream.new("an arbitrary string".to_java_bytes)