如何将 org.jruby.RubyString 转换为 java.io.InputStream
How to convert org.jruby.RubyString to java.io.InputStream
我正在使用带有 Java 库的 JRuby。 Java 方法的输入参数类型是 InputStream,我正在使用 JRuby 调用此方法,如何将 Java 的“/directory/item.txt”之类的内容还原为 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::JavaIo::ByteArrayInputStream:0x73e22a3d>
>> _.java_kind_of? java.io.InputStream
=> true
一次全部:
inputstream = java.io.ByteArrayInputStream.new("an arbitrary string".to_java_bytes)
我正在使用带有 Java 库的 JRuby。 Java 方法的输入参数类型是 InputStream,我正在使用 JRuby 调用此方法,如何将 Java 的“/directory/item.txt”之类的内容还原为 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::JavaIo::ByteArrayInputStream:0x73e22a3d>
>> _.java_kind_of? java.io.InputStream
=> true
一次全部:
inputstream = java.io.ByteArrayInputStream.new("an arbitrary string".to_java_bytes)