Java – バイト配列へのリーダー
このクイックチュートリアルでは、プレーンなJava、Guava、およびApache Commons IOライブラリを使用してReaderをbyte[]** に変換する方法を説明します。
この記事はリンクの一部です:/java-tutorial[The Java – Back to Basic]シリーズ。
1 Java
を使う
単純なJavaソリューションから始めましょう。中間のStringを使用します。
@Test
public void givenUsingPlainJava__whenConvertingReaderIntoByteArray__thenCorrect()
throws IOException {
Reader initialReader = new StringReader("With Java");
char[]charArray = new char[8 ** 1024];
StringBuilder builder = new StringBuilder();
int numCharsRead;
while ((numCharsRead = initialReader.read(charArray, 0, charArray.length)) != -1) {
builder.append(charArray, 0, numCharsRead);
}
byte[]targetArray = builder.toString().getBytes();
initialReader.close();
}
読み取りはチャンクで行われ、一度に1文字では行われません。
2グアバ
とは
次に、グアバのソリューションを見てみましょう。中間のStringも使用します。
@Test
public void givenUsingGuava__whenConvertingReaderIntoByteArray__thenCorrect()
throws IOException {
Reader initialReader = CharSource.wrap("With Google Guava").openStream();
byte[]targetArray = CharStreams.toString(initialReader).getBytes();
initialReader.close();
}
単純なJavaの例を低レベルで変換する必要がないように、組み込みのユーティリティAPIを使用しています。
3コモンズIO
付き
そして最後に – Commons IOを使ってすぐにサポートされる直接的な解決策は次のとおりです。
@Test
public void givenUsingCommonsIO__whenConvertingReaderIntoByteArray__thenCorrect()
throws IOException {
StringReader initialReader = new StringReader("With Commons IO");
byte[]targetArray = IOUtils.toByteArray(initialReader);
initialReader.close();
}
そしてそれがあります – java
Reader
をバイト配列に変換する3つの簡単な方法。