반응형

[Java 실습 #17] InputStream을 ByteArray로 변환

 

1. 자바에서 InputStream을 ByteArray로 변환

2. 개발환경

    2.1. 개발환경

    2.2. 라이브러리

3. 구현

    3.1. 프로젝트 구조

    3.2. 파일 - 텍스트 파일

    3.3. 구현 - 소스코드

4. 결과

 

 

1. 자바에서 InputStream을 ByteArray로 변환

 

 

2. 개발환경

 

2.1. 개발환경

MacOS M1 - macOS Monterey 12.0.1

IntelliJ IDEA 2021.2 (Community Edition)

 

2.2. 라이브러리

JDK 1.8

 

 

3. 구현

3.1. 프로젝트 구조

 

3.2. 파일 - 텍스트

1
2
3
4
5
6
7
package io.home.test;
 
public class InputStreamToByteArray {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

 

3.3. 구현 - 소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package io.home.test;
 
import java.io.*;
import java.nio.charset.StandardCharsets;
 
public class InputStreamToByteArray {
 
    private static final String USER_DATA_PATH = "resource";
    private static final String USER_DATA_FILE_NAME = "sample-data.txt";
 
    private byte[] bytes;
 
    private void readUserData() {
        String filePath = "/" + USER_DATA_PATH + "/" + USER_DATA_FILE_NAME;
        InputStream is = InputStreamToByteArray.class.getResourceAsStream(filePath);
        if (is == nullthrow new RuntimeException("No data in " + filePath);
 
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
//        byte[] buffer = new byte[0xFFFF]; // 65535
        byte[] buffer = new byte[1024];
        try {
//            for (int len = is.read(buffer); len != -1; len = is.read(buffer)) {
//                baos.write(buffer, 0, len);
//            }
            int len;
            while ((len = is.read(buffer)) > -1) {
                baos.write(buffer, 0, len);
            }
        } catch (IOException ioe) {
        }
        bytes = baos.toByteArray();
    }
 
    public static void main(String[] args) {
        InputStreamToByteArray inputStreamToByteArray = new InputStreamToByteArray();
        inputStreamToByteArray.readUserData();
 
        String result = new String(inputStreamToByteArray.bytes, StandardCharsets.UTF_8);
        System.out.println(result);
    }
 
}

 

4. 결과

반응형