如何将org.jruby.RubyString转换为java.io.InputStream [英] How to convert org.jruby.RubyString to java.io.InputStream

查看:87
本文介绍了如何将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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆