2017-07-13 13 views
-1

私はインターネットからダウンロードしたInputStreamを持っています。そして、私はそれに正規表現を適用する必要があります - その正規表現のすべての出現は、提供される文字列に変更されるように。 私はAPIに転送する必要があるので、戻り値としてInputStreamが必要です。正規表現を適用してInputStreamを変更してください

基本的には、そのような署名は最高のようになります。

InputStream applyRegex(InputStream stream, Pattern pattern, String changeString){ 
    ... 
} 

私はストリームを扱うのは非常に基本的な知識を持っていることが可能であるならば、法形式で答えを与えてください。私はそれがgithub.com/rwitzel/streamflyerライブラリで作業を取得するために管理方法読ま(バイト[])

+1

https://github.com/rwitzel/streamflyer – xenteros

+0

私のInputStreamが、ストリームはバイトで構成され、LIBはwotkはないです。多分、他の解決策がありますか? –

答えて

0

呼び出すまでところで

は、私が受け取る入力ストリームは、サイズ0を持っています。 我々が持っているapp.gradle場合:

compile 'com.github.rwitzel.streamflyer:streamflyer-core:1.2.0'; 

方法:

InputStream applyRegex(InputStream stream, String pattern, String changeString){ 
    // byte stream as character stream 
    Reader originalReader = new InputStreamReader(inputStream, charsetName); 

    // create the modifying reader 
    Reader modifyingReader = new ModifyingReader(originalReader, new RegexModifier(pattern, 0, replacement)); 

    // character stream as byte stream 
    inputStream = new ReaderInputStream(modifyingReader, charsetName); 

    return inputStream; 
} 
関連する問題