Java - конвертировать файл в InputStream

Java - конвертировать файл в InputStream

1. обзор

В этом кратком руководстве мы собираемся показать, какconvert a File to an InputStream - сначала с использованием простой Java, а затем Guava и библиотеки ввода-вывода Apache Commons.

Эта статья является частьюthe “Java – Back to Basic” series здесь для примера.

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

Java сканер

Учебное пособие и примеры по Java Scanner - сканируйте строку, файл или консоль, проверяйте ввод, находите или пропускайте шаблоны.

Read more

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

Как писать в файл и читать из файла, используя поддержку и утилиты Guava IO.

Read more

Java Byte Array для InputStream

Как преобразовать byte [] в InputStream, используя обычный Java или Guava.

Read more

2. Конвертировать с помощью Java

Мы можем использоватьIO package java для преобразования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. Преобразование с использованием гуавы

Далее - давайте посмотримthe Guava solution, используя посредник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 simple and clean solutions for opening a stream from a Java file.

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

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