1. 개요

이 빠른 사용방법(예제)에서는 파일InputStream 으로 변환하는 방법을 보여줍니다 . 먼저 일반 Java를 사용한 다음 Guava 및 Apache Commons IO 라이브러리를 사용합니다.

이 기사는 Baeldung Java – Back to Basics  시리즈 의 일부입니다.

2. Java를 사용하여 변환

Java 의 IO 패키지 를 사용하여 File 을 다른 InputStream 으로 변환할 수 있습니다 .

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 을 사용  하여 두 파일의 입력 스트림을 단일 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 를 사용하는 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. 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);
}

그리고 우리는 그것을 가지고 있습니다. Java 파일에서 스트림을 여는 세 가지 간단하고 깨끗한 솔루션.

5. 결론

이 기사에서는 다양한 라이브러리를 사용하여 파일InputStream 으로 변환하는 다양한 방법을 살펴보았습니다 .

이러한 모든 예제와 코드 스니펫의 구현은 GitHub 에서 찾을 수 있습니다 . 메이븐 기반의 프로젝트이기 때문에 그대로 임포트하고 실행하기 쉬워야 합니다.

Generic footer banner