2010-04-23 3 views
1

내 스크립트는 httpConnection을 통해 xml을 가져 와서 영구 저장소에 저장합니다. 거기에 문제 없습니다. 그런 다음 저장된 데이터를 반복하여 대기열을 통해 가져올 이미지 URL 목록을 작성합니다. HttpConnection을 통해 Blackberry 장치에 이미지를 저장하는 방법은 무엇입니까?

이러한 요청의 각

난에 어떤 좋은 문서를 찾을 수없는 무엇
public synchronized void run() 
{ 
     HttpConnection connection = (HttpConnection)Connector.open("http://www.somedomain.com/image1.jpg"); 
     connection.setRequestMethod("GET"); 
     String contentType = connection.getHeaderField("Content-type"); 

     InputStream responseData = connection.openInputStream(); 
     connection.close(); 

     outputFinal(responseData, contentType); 
} 

public synchronized void outputFinal(InputStream result, String contentType) throws SAXException, ParserConfigurationException, IOException 
{ 

    if(contentType.startsWith("text/")) 
    { 
     // bunch of xml save code that works fine 

    } 
    else if(contentType.equals("image/png") || contentType.equals("image/jpeg") || contentType.equals("image/gif")) 
    { 
    // how to save images here? 
    } 
    else 
    { 
    //default 
    } 
} 

하나는 응답 데이터를 가지고에 저장 얼마나입니다 ... 그래서

로 HttpConnection에 스레드를 호출 장치에 저장된 이미지.

어쩌면 나는 아주 명백한 것을 간과했을 것입니다. 어떤 도움이라도 대단히 감사합니다. 감사


나는이 조언을 다음과 같은 노력하고 BB 특정 문제를 찾을 때 난 항상 찾을 같은 것을 발견 아무것도.

모든 예제 또는 게시물은 플랫폼에 대한 모든 것을 알고 있다고 가정합니다. 다음은 간단한 질문입니다 : 어떤 코드 행이 블랙 베리 장치에 읽기 출력 스트림을 씁니까? 어떤 경로? 나중에 어떻게 검색합니까?

** 파일 이름이 결정됩니다

나는 아무것도 않는 경우 나는 그것이 가정에 쓰기 작업을 수행하는 경우 또는 심지어의 경우는 전혀 무엇을하고 있는지 모르기 때문에 나도 몰라하는이 코드를 가지고 호출 된 URL을 기반으로 루프에.

FileOutputStream fos = null; 
try 
{ 
    fos = new FileOutputStream(File.FILESYSTEM_PATRIOT, filename); 

    byte [] buffer = new byte [262144]; 
    int byteRead; 
    while ((byteRead = result.read (buffer))!=- 1) 
    { 
     fos.write (buffer, 0, byteRead); 
    } 

    fos.flush(); 
    fos.close(); 
} 
catch(IOException ieo) 
{ 
} 
finally 
{ 
    if(fos != null) 
    { 
     fos.close(); 
    } 
} 

아이디어는 내가 서버에서 가져온 600 개 이미지를 가지고있다. 엔티티가 호출 될 때 내부 저장 장치에서 관련 이미지 인 entity_id.png를 가져올 수 있도록 xml을 반복하고 각 이미지를 장치에 저장해야합니다.

RIM의 설명서에이 내용이 명시되어 있지 않으며 쉽게 알아낼 수 없습니다. 이 문제는이 포럼이나 내가 검색 한 다른 사람들에게는 해결되지 않은 것 같습니다.

감사

+0

덧붙여서 추가 정보는 아래의 답변을 참조하십시오. 왜 SO가 코멘트의 내용을 제한하는지 모르겠습니다. 많은 경우에 너무 제한적입니다. – Kai

답변

2

당신은 쓰기를 수행하는 자바 FileOutputStream에를 사용해야합니다. 또한 InputStream에서 데이터를 읽은 후에 연결을 닫고 싶을 것이다. close (close) 호출보다 위에 outputFinal을 이동한다. FileOutputStream에 관한 모든 종류의 예제를 쉽게 찾을 수 있습니다.

자세한 내용은 here을 참조하십시오. FileOutputStream을 사용하려면 응용 프로그램에 서명해야합니다.

관련 문제