2014-02-20 6 views
1

Есть сценарий, в котором httpentity имеет двоичные данные изображения в InputStream, для дальнейшей обработки его преобразовывается как String в файл библиотеки [String str = EntityUtils.toString(httpResponse.getEntity())], теперь я пытаюсь получить входной поток назад из этой строки.Как получить InputStream обратно из String

Возьмите ниже сценарий для понимания проблемы:

Working - ImageView отображается с содержанием

InputStream inStream = getContentResolver().openInputStream(thisPhotoUri); 
Bitmap bm = BitmapFactory.decodeStream(inStream); 
ImageView view = (ImageView)findViewById(R.id.picture_frame); 
view.setImageBitmap(bm); 

Issue - ImageView не отображается с изображением

InputStream inStream = getContentResolver().openInputStream(thisPhotoUri); 
String str = inStream.toString(); 
InputStream is = new ByteArrayInputStream(str.getBytes()); 
Bitmap bm = BitmapFactory.decodeStream(is); 
ImageView view = (ImageView)findViewById(R.id.picture_frame); 
view.setImageBitmap(bm); 

ответ

-1

Это должно быть то, что вы ищете:

InputStream stream = new ByteArrayInputStream(yourString.getBytes("UTF-8"));

+0

Пробовал это, он не помогает. Когда Bitmapfactory возвращает null, при передаче потока. – Dinesh

1

InputStream.toString() не делает, что вы ожидаете. Он назовет метод Object.toString(), и вы получите что-то вроде [email protected], а не реальное содержание потока!

Попробуйте System.out.println(str);, чтобы увидеть, что это такое.

Вот почему вы не можете восстанавливать исходный InputStream из этого контента, потому что это не содержания в InputStream!

Вы должны прочитать поток по-другому, чтобы получить контент до String! См.: Read/convert an InputStream to a String

1

Вы не можете напрямую преобразовать InputStream в String. Это может быть проблемой.

String str = inStream.toString(); 

Take a look at this определить способ преобразования InputStream в строку.

+0

Пробовал преобразование строк, как упоминалось в ссылке, когда я конвертирую строку обратно в поток и передаю ее в растровую фабрику, она все равно возвращает null. – Dinesh

+0

Почему вы хотите преобразовать поток ввода в строку, выполняете ли вы какие-либо изменения? – Rakhita

+0

Http-вызовы выполняются внутри файла jar, и ответ возвращается как json, поэтому в этом случае поток (двоичный файл изображения) преобразуется как строка и добавляется в json, тогда прикладной уровень пытается использовать строку для получения поток обратно и получить изображение. – Dinesh

 Смежные вопросы

  • Нет связанных вопросов^_^