2011-03-19 2 views
1

나는 HTML 페이지를 다루는 프로젝트를하고있다. 동일한 페이지를 반복해서 다운로드하고 싶지 않으므로 로컬로 저장하려고합니다. Scanner을 많이 사용하지만 Scanner에는 InputStreamReader이 필요합니다. 지금은 HTML 페이지를 로컬 StringBuffer에 저장할 수 있지만 이 StringBufferScanner과 함께 사용할 수 없습니다.String을 로컬 버퍼에 저장하여 Scanner에서 다시 읽을 수 있도록하려면 어떻게해야합니까?

StringBufferInputStreamReader으로 사용할 수 있습니까? 그렇지 않다면 어떤 방법을 사용할 수 있습니까?

답변

3

ScannerReadable을 취하고 constructor을 갖는다. Readable 구현 중 CharBuffer은 읽기 쉽고 쓰기 가능한 소스를 원하기 때문에 가장 목적에 맞는 것 같습니다.

String string = getItSomehow(); 
CharBuffer buffer = CharBuffer.wrap(string); 
// ... 
Scanner scanner = new Scanner(buffer); 
// ... 
+0

+1 CharBuffer에 대해 들어 본 적이 없지만 매우 유용합니다. – helpermethod

0

아마의 라인을 따라 뭔가 :이 권리를 수행 할 경우

new InputStreamReader(new ByteArrayInputStream(new StringBuffer().toString().getBytes())); 

올바르게 변경 한 페이지를 감지하기 위해, If-Modified-Since 헤더를 사용, 어쨌든 HTTP GET 요청을 보내야합니다 .

적절한 HTTP 프록시 사용을 고려해 보셨습니까? 그러면 응용 프로그램에서 바퀴를 다시 발명하는 번거 로움을 덜 수 있습니다. HTTP 프록시는 아마도 더 잘 수행 될 것이고 하나의 어플리케이션 이상으로 사용 가능할 것입니다.

관련 문제