2010-02-08 3 views
16

JNLP를 사용하면이 줄이 있습니다.StringReader로 StringBufferInputStream을 대체하는 방법은 무엇입니까?

File_Save_Service.saveFileDialog(null,null,new StringBufferInputStream("testing"),null); 

이 줄에서 StringReader로 StringBufferInputStream을 바꾸는 방법은 무엇입니까? StringBufferInputStream 용 API는 StringReader를 사용하는 것이 좋지만 다른 유형간에 변환하는 방법은 무엇입니까?

답변

28

FileSaveService.saveFileDialog는 Reader가 아닌 InputStream을 사용합니다 (문자 데이터가 아닌 이진 데이터를 원하므로).

StringBufferInputStream은 문자를 올바르게 바이트로 변환하지 않기 때문에 더 이상 사용되지 않습니다.

대신이 InputStream를 사용할 수 있습니다

new ByteArrayInputStream("the string".getBytes("UTF-8")) 
+1

핵심은 InputStream 인이 바이트를 인코딩하는 방법을 알 필요가있다. – Matt

+0

예, 인코딩을 선택해야합니다 (위의 예에서 UTF-8). – Thilo

1

Reader을 표준 Java 클래스 라이브러리가 InputStream으로 감싸는 방법을 제공하지는 않지만 다음과 같은 질문과 대답은 몇 가지 해결책을 제공합니다. 작은 글씨를주의해서 읽으십시오!

How to convert a Reader to InputStream and a Writer to OutputStream?

그러나, (이것은 단지 단위 테스트 코드 인 경우는 것으로 나타나는 ...) 그냥 당신이 가지고 무엇을 고수하기 위해, 또는 ByteArrayInputStream 등으로 StringInputStream를 대체하는 간단 @ Thilo의 답변에 설명되어 있습니다.

관련 문제