Java에서 입력 스트림을 문자열로 읽거나 변환하는 방법은 무엇입니까? - 여섯 가지 쉬운 방법

많은 개발 프로젝트에서 Java에서 InputStream을 String으로 변환해야 할 수도 있습니다.
이 자습서에서는 Java에서 InputStream을 문자열로 읽거나 변환하는 간단하고 직접 선택한 방법에 대해 설명합니다.
프로젝트 구성에 따라 다음 방법 중 하나를 사용할 수 있습니다.

이 자습서의 목적을 위해 "inputStream"이 InputStream 유형의 변수라고 가정합니다.

InputStream inputStream; 


아래 방법을 확인하세요.


1. Java 1.8+ 내장 스트림 패키지 사용:



String result = new BufferedReader(new InputStreamReader(inputStream))
                    .lines().collect(Collectors.joining("\n"));


이 방법은 Java 1.8 이상에서 작동합니다.


2. 네이티브 자바 스캐너 방식:



try (Scanner scanner = new Scanner(inputStream).useDelimiter("\\A")) {
    String result = scanner.hasNext() ? scanner.next() : "";
}


"\A"는 useDelimiter 스캐너 메서드의 정규식 패턴을 나타냅니다.
"\A"는 문자열의 시작을 의미합니다! . 따라서 이 패턴이 제공되면 전체 스트림이 스캐너 개체로 준비됩니다.


3. Apache commons-io IOU 방법:



String result = IOUtils.toString(inputStream);


이 방법의 경우 Apache commons-io 라이브러리가 프로젝트에 포함되어야 합니다. 아래 maven에 포함시킬 수 있습니다.
maven 링크.


4. Google 구아바 라이브러리 사용:



String result = CharStreams.toString(new InputStreamReader(inputStream));


이 방법을 사용하려면 Guava 라이브러리가 프로젝트에 포함되어야 합니다. 아래 maven에 포함시킬 수 있습니다.
maven 링크

5. 스프링 부트 스타일:




String content = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);


프로젝트에 스프링 부트 프레임워크를 사용하는 경우 이를 사용할 수 있습니다. 스프링 부트를 포함하려면 아래를 사용할 수 있습니다.
maven 레포

6. 일반 이전 ByteArrayOutputStream 방식:




ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
    baos.write(buffer, 0, length);
}
String result = baos.toString();


유틸리티 메서드 없이 실제 InputStream을 가지고 놀고 싶다면 위의 스타일을 사용할 수 있습니다.

보너스: Java에서 간단한 방법으로 파일을 문자열로 읽고 쓰는 방법: https://tipseason.com/how-to-read-file-as-string-in-java/

올바른 질문 세트를 연습하지 않으면 기술 인터뷰가 어려울 수 있습니다. 일일 인터뷰 연습 질문은 당사group를 따르십시오.

좋은 웹페이지 즐겨찾기