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 에서 찾을 수 있습니다 . 메이븐 기반의 프로젝트이기 때문에 그대로 임포트하고 실행하기 쉬워야 합니다.