2017-07-12 3 views
1

JRubyをJavaライブラリで使用しています。 Javaメソッドの入力パラメータの型はInputStreamですが、JRubyを使ってこのメソッドを呼び出していますが、JavaメソッドのInputStreamに "/directory/item.txt"のようなものをどのように戻すことができますか?ありがとうございました。org.jruby.RubyStringをjava.io.InputStreamに変換する方法

+0

を[関連](HTTPS ://stackoverflow.com/q/3875884/9859)。私の電話では今、RubyString#to_java_bytesで始まり、それらを 'InputStream'インターフェースを実装するものに渡すと思います – rampion

答えて

1

使用RubyString#to_java_bytesjava.io.InputStreamのサブクラスである 、次いでjava.io.ByteArrayInputStreamでそれを包む、バイト文字列を変換する:

>> "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) 
関連する問題