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. 結論

この記事では、さまざまなライブラリを使用してFileInputStreamに変換する方法についてさまざまな方法を検討しました。 これらすべての例とコードスニペットの実装は、GitHubにあります。これはMavenベースのプロジェクトであるため、そのままインポートして実行するのは簡単です。