String
값을로 변환 하려면 InputStreamReader
어떻게해야합니까?
답변
ByteArrayInputStream 도 트릭을 수행합니다.
InputStream is = new ByteArrayInputStream( myString.getBytes( charset ) );
그런 다음 리더로 변환하십시오.
InputStreamReader reader = new InputStreamReader(is);
답변
나는 또한 아파치 커먼즈 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);