Java - ファイルをInputStreamに変換する

Java –ファイルをInputStreamに変換

1. 概要

このクイックチュートリアルでは、convert a File to an InputStreamの方法を示します。最初にプレーンJavaを使用し、次にGuavaとApache CommonsIOライブラリを使用します。

この記事は、例としてここのthe “Java – Back to Basic” seriesの一部です。

参考文献:

Javaスキャナー

Javaスキャナーのチュートリアルと例-文字列、ファイル、またはコンソールをスキャンし、入力を検証し、パターンを検索またはスキップします。

グアバ–ファイルへの書き込み、ファイルからの読み取り

Guava IOサポートとユーティリティを使用してファイルに書き込み、ファイルから読み取る方法。

InputStreamへのJavaバイト配列

単純なJavaまたはGuavaを使用してbyte []をInputStreamに変換する方法。

2. Javaを使用して変換する

JavaのIO packageを使用して、Fileを別のInputStreamsに変換できます。

2.1. FileInputStream

最初とsimplest one – using a 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

use DataInputStream to read binary or primitive data from a fileができる別のものを見てみましょう:

@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

最後に、use SequenceInputStream to concatenate input stream of two files to a single 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. グアバを使用して変換

次へ–中間のByteSourceを使用して、the Guava solutionを見てみましょう。

@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を使用して変換する

最後に、Apache CommonsIOを使用したソリューションを見てみましょう。

@Test
public void givenUsingCommonsIO_whenConvertingFileToInputStream_thenCorrect()
  throws IOException {
    File initialFile = new File("src/main/resources/sample.txt");
    InputStream targetStream = FileUtils.openInputStream(initialFile);
}

そして、あなたはそれを持っています - 3 simple and clean solutions for opening a stream from a Java file

5. 結論

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