2010-07-29 4 views
2

웹 페이지에서 이미지를 다운로드하는 데 httpclient를 사용하고 있습니다. 디스크에 저장하려고하지만 많은 행운이 없습니다. 실제로 디스크에 그걸 얻기 위해 다음을 수행해야 할 어떤 이미지를 가져 오기 위해 아래 코드를 사용하고 있지만 확실하지 않다는 A JPG 또는 PNG 이미지 경로 ...에있을 것입니다 가져 덕분에Java에서 이미지를 디스크에 어떻게 저장합니까?

HttpContext localContext = new BasicHttpContext(); 
     localContext.setAttribute(ClientContext.COOKIE_STORE,HttpClientFetch.emptyCookieStore); 

     HttpGet httpget = new HttpGet(pPage.imageSrc); 
     HttpResponse response; 
     response = httpClient.execute(httpget, localContext); 

     Header[] headers = response.getAllHeaders(); 
     for(Header h: headers) { 
      logger.info("HEADERS: "+h.getName()+ " value: "+h.getValue()); 
     } 

     HttpEntity entity = response.getEntity(); 


     Header contentType = response.getFirstHeader("Content-Type"); 

     byte[] tmpFileData; 

     if (entity != null) { 
      InputStream instream = entity.getContent(); 
      int l; 
      tmpFileData = new byte[2048]; 
      while ((l = instream.read(tmpFileData)) != -1) { 
      } 
     } 

tmpFileData는 이제 웹 사이트에서 jpg의 바이트를 보유해야합니다.

+1

fileOutputStream.write (byte [])를 사용하지 않으시겠습니까? – samitgaur

답변

3
if (entity != null) { 
    InputStream instream = entity.getContent(); 
    OutputStream outstream = new FileOutputStream("YourFile"); 
    org.apache.commons.io.IOUtils.copy(instream, outstream); 
} 
+0

일했습니다! 감사합니다 :) – James

+0

YourFile 존재하지 않기 때문에이 예제를 사용하여 자바 오류를 보여줍니다. 왜 이런 일이 일어나고, 나는이 스크립트가이 파일을 읽는 것이 아니라 그것을 만들려고한다고 가정한다. – eLRuLL

1

FileOutputStream 및 그 write 메소드를 살펴보십시오.

FileOutputStream out = new FileOutputStream("outputfilename"); 
out.write(tmpFileData); 
1

Apache Commons-io를 사용하면 출력 스트림 하나 (예 : FileOutputStream) 만 복사하면됩니다.

관련 문제