如何将org.jruby.RubyString转换为java.io.InputStream [英] How to convert org.jruby.RubyString to java.io.InputStream
本文介绍了如何将org.jruby.RubyString转换为java.io.InputStream的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在将JRuby与Java库一起使用. Java方法的输入参数的类型为InputStream,并且我正在使用JRuby调用此方法,如何将Java方法的"/directory/item.txt"之类的内容还原为InputStream?谢谢.
I am using JRuby with a Java library. The type of an input parameter of the Java method is InputStream, and I am using JRuby to call this method, how could I revert something like "/directory/item.txt" to InputStream for the Java method? Thank you.
推荐答案
使用RubyString#to_java_bytes
将字符串转换为字节,然后将其包装在
Use RubyString#to_java_bytes
to convert the string to bytes, then wrap it in a java.io.ByteArrayInputStream
,
which is a subclass of 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::JavaIo::ByteArrayInputStream:0x73e22a3d>
>> _.java_kind_of? java.io.InputStream
=> true
一次全部
inputstream = java.io.ByteArrayInputStream.new("an arbitrary string".to_java_bytes)
这篇关于如何将org.jruby.RubyString转换为java.io.InputStream的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文