Как Вы сохраняете образы к устройству Blackberry через HttpConnection?

Мой сценарий выбирает xml через httpConnection и сохраняет к персистентному хранилищу. Никакие проблемы там. Затем я циклично выполняюсь через сохраненные данные для создания списка URL изображения для выборки через очередь.

Каждый из этих запросов называет поток httpConnection как так

...

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
  }
 }

Что я не могу найти, что любая хорошая документация относительно - то, как можно было бы взять данные ответа и сохранил бы их к изображению, сохраненному на устройстве.

Возможно, я просто пропустил что-то очень очевидное. Любая справка очень ценится.Спасибо


Я попробовал после этого, советуют и нашел то же самое, которое я всегда нахожу при поиске конкретных вопросов 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 изображений, которые вытягивают с сервера. Я должен циклично выполнить xml и сохранить каждый образ к устройству так, чтобы, когда объект называют, я мог вытянуть связанное изображение - entity_id.png - от внутренней памяти.

Документация от RIM не указывает это, и при этом она не помогает начать понимать это. Эта проблема, кажется, не решается на этом форуме или других, которых я искал.

Спасибо

1
задан Bill the Lizard 9 September 2011 в 19:55
поделиться

1 ответ

Для записи потребуется использовать Java FileOutputStream. Вы также захотите закрыть соединение после чтения данных из InputStream (переместите outputFinal над своим вызовом, чтобы закрыть). Вы можете легко найти всевозможные примеры, касающиеся FileOutputStream.

Подробнее см. здесь . Обратите внимание, что для использования FileOutputStream ваше приложение должно быть подписано.

2
ответ дан 3 September 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: