Рубрики
Без рубрики

Java – Преобразование файла в InputStream

Как открыть входной поток из файла Java – используя обычную Java, Guava и библиотеку ввода-вывода Apache Commons.

Автор оригинала: Eugen Paraschiv.

1. Обзор

В этом кратком руководстве мы покажем, как преобразовать Файл в InputStream – сначала с помощью простой Java, а затем Guava и библиотеки ввода-вывода Apache Commons.

Эта статья является частью серии “Java – Back to Basic” здесь, на Baeldung.

Дальнейшее чтение:

Сканер Java

Гуава – Запись в файл, чтение из файла

Массив байтов Java в поток ввода

2. Преобразование С Помощью Java

Мы можем использовать Пакет ввода-вывода java для преобразования Файл к разным Входной поток s.

2.1. Поток ввода файлов

Давайте начнем с первого и самого простого – с помощью 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 для чтения двоичных или примитивных данных из файла :

@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 для объединения входного потока из двух файлов в один Входной поток :

@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 :

@Test
public void givenUsingGuava_whenConvertingFileToInputStream_thenCorrect() 
  throws IOException {
    File initialFile = new File("src/main/resources/sample.txt");
    InputStream targetStream = Files.asByteSource(initialFile).openStream();
}

4. Преобразование С Помощью Commons IO

Наконец, давайте рассмотрим решение с использованием Apache Commons IO:

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

И вот он у вас – 3 простых и чистых решения для открытия потока из файла Java .

5. Заключение

В этой статье мы рассмотрели различные способы преобразования файла в InputStream с использованием различных библиотек.
Реализацию всех этих примеров и фрагментов кода можно найти на GitHub
– это проект на основе Maven, поэтому его должно быть легко импортировать и запускать как есть.