Java –ファイルをInputStreamに変換
1. 概要
このクイックチュートリアルでは、convert a File to an InputStreamの方法を示します。最初にプレーンJavaを使用し、次にGuavaとApache CommonsIOライブラリを使用します。
この記事は、例としてここのthe “Java – Back to Basic” seriesの一部です。
参考文献:
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. 結論
この記事では、さまざまなライブラリを使用してFileをInputStreamに変換する方法についてさまざまな方法を検討しました。 これらすべての例とコードスニペットの実装はover on GitHubにあります。これはMavenベースのプロジェクトであるため、そのままインポートして実行するのは簡単です。