IT

Java에서 String을 InputStreamReader로 바꾸는 방법은 무엇입니까?

lottoking 2020. 3. 24. 08:13
반응형

Java에서 String을 InputStreamReader로 바꾸는 방법은 무엇입니까?


String값을 어떻게으로 변환 할 수 InputStreamReader있습니까?


ByteArrayInputStream 도 트릭을 수행합니다.

InputStream is = new ByteArrayInputStream( myString.getBytes( charset ) );

나는 또한 아파치 커먼즈 IOUtils클래스를 발견했다 .

InputStreamReader isr = new InputStreamReader(IOUtils.toInputStream(myString));

특별히 InputStreamReader 여야합니까? StringReader 를 사용하는 것은 어떻 습니까?

그렇지 않으면 StringBufferInputStream을 사용할 수 있지만 문자 변환 문제로 인해 더 이상 사용되지 않으므로 StringReader를 선호해야합니다.


@ Dan 과 같은 질문 -왜 StringReader가 아닌가?

InputStreamReader 여야하는 경우 :

String charset = ...; // your charset
byte[] bytes = string.getBytes(charset);
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
InputStreamReader isr = new InputStreamReader(bais);

당신은) 도착하려고 Reader밖으로 기능을 InputStreamReader, 또는 b) InputStream중 기능 InputStreamReader? 당신은 얻을 수 없습니다 b). InputStreamReader이 아닙니다 InputStream.

목적은 바이트의 소스 InputStreamReader를 취하여 InputStream바이트를 a 형식으로 문자로 디코딩하는 것 Reader입니다. 이미 데이터를 문자 (원래 문자열)로 가지고 있습니다. 문자열을 바이트로 인코딩하고 바이트를 문자로 다시 디코딩하는 것은 중복 작업입니다.

Reader소스를 사용하지 않으려면을 사용하십시오 StringReader.

InputStream바이트 만 제공 하려는 경우 IOUtils.toInputStream(..)여기에서 다른 답변에서 제안한 아파치 공통 사용 하십시오.


Cactoos 를 시도해 볼 수 있습니다 .

InputStream stream = new InputStreamOf(str);

그런 다음 필요한 경우 Reader:

Reader reader = new ReaderOf(stream);

참고 URL : https://stackoverflow.com/questions/247161/how-do-i-turn-a-string-into-a-inputstreamreader-in-java

반응형