Java–ファイルをInputStreamに変換
1. 概要
このクイックチュートリアルでは、ファイルをInputStream に変換する方法を示します。最初にプレーンJavaを使用し、次にGuavaとApacheCommonsIOライブラリを使用します。
この記事は、ここBaeldungの「Java –BacktoBasic」シリーズの一部です。
2. Javaを使用して変換する
javaのIOパッケージを使用して、Fileを別のInputStreamに変換できます。
2.1. FileInputStream
最初の最も単純なものから始めましょう–FileInputStreamを使用します。
@Test
public void givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect()
throws IOException {
File initialFile = new File("src/main/resources/sample.txt");
InputStream targetStream = new FileInputStream(initialFile);
}
2.2. DataInputStream
別のものを見てみましょう。ここでは、DataInputStreamを使用してファイルからバイナリデータまたはプリミティブデータを読み取ることができます。
@Test
public final void givenUsingPlainJava_whenConvertingFileToDataInputStream_thenCorrect()
throws IOException {
final File initialFile = new File("src/test/resources/sample.txt");
final InputStream targetStream =
new DataInputStream(new FileInputStream(initialFile));
}
2.3. SequenceInputStream
最後に、 SequenceInputStreamを使用して、2つのファイルの入力ストリームを1つのInputStreamに連結する方法も見てみましょう。
@Test
public final void givenUsingPlainJava_whenConvertingFileToSequenceInputStream_thenCorrect()
throws IOException {
final File initialFile = new File("src/test/resources/sample.txt");
final File anotherFile = new File("src/test/resources/anothersample.txt");
final InputStream targetStream = new FileInputStream(initialFile);
final InputStream anotherTargetStream = new FileInputStream(anotherFile);
InputStream sequenceTargetStream =
new SequenceInputStream(targetStream, anotherTargetStream);
}
これらの例では、読みやすくするために、結果のストリームを閉じていないことに注意してください。
3. Guavaを使用して変換する
次へ–中間の ByteSource を使用して、Guavaソリューションを見てみましょう。
@Test
public void givenUsingGuava_whenConvertingFileToInputStream_thenCorrect()
throws IOException {
File initialFile = new File("src/main/resources/sample.txt");
InputStream targetStream = Files.asByteSource(initialFile).openStream();
}
4. CommonsIOを使用して変換する
最後に、ApacheCommonsIOを使用したソリューションを見てみましょう。
@Test
public void givenUsingCommonsIO_whenConvertingFileToInputStream_thenCorrect()
throws IOException {
File initialFile = new File("src/main/resources/sample.txt");
InputStream targetStream = FileUtils.openInputStream(initialFile);
}
そして、これで完了です–Javaファイルからストリームを開くための3つのシンプルでクリーンなソリューション。
5. 結論
この記事では、さまざまなライブラリを使用してFileをInputStreamに変換する方法についてさまざまな方法を検討しました。 これらすべての例とコードスニペットの実装は、GitHubのにあります。これはMavenベースのプロジェクトであるため、そのままインポートして実行するのは簡単です。