GuavaInputStream
を使用するように簡単に変換できますか?BufferedReader
私は次のようなものを探しています:
InputStream inputStream = ...;
BufferedReader br = Streams.newBufferedReader(inputStream);
を使用してファイルを開くことができますFiles.newReader(File file, Charset charset)
。それはクールです。私はInputStream
.
アップデート:
使用CharStreams.newReaderSupplier
は私にとって冗長に思えます。私が間違っている場合は修正してください。ただし、Guava を使用InputStream
するように簡単に変換するには、次のようにする必要があります。BufferedReader
final InputStream inputStream = new FileInputStream("/etc/fstab");
Reader bufferedReader = new BufferedReader(CharStreams.newReaderSupplier(new InputSupplier<InputStream>(){
public InputStream getInput() throws IOException {
return inputStream;
}
}, Charset.defaultCharset()).getInput());
もちろん、次のようなヘルパーを作成できます。
return new BufferedReader(new InputStreamReader(inputStream));
しかし、そのようなヘルパーは Guava IO によって提供されるべきだと思います。File インスタンスに対してそのようなトリックを行うことができます。InputStream を使用できないのはなぜですか?
// Guava can do this
Reader r = Files.newReader(new File("foo"), charset);
// but cannot do this
Reader r = SomeGuavaUtil.newReader(inputStream, charset);
私が間違っている場合は修正してください。ただし、API が不足しているように思えます。