Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование OutputStream в byte / 6 сообщений из 6, страница 1 из 1
04.12.2014, 14:12
    #38824874
Хороший человек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование OutputStream в byte
Пишу вот такой код. Не могу понять почему OutputStream возвращается пустой. Помогите пожалуйста разобраться.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
public class HowToXSLT {
    
public static void main(String[] args) {
 
  try {
  
        byte[] source = ..мой xml;
        byte[] st = мой style;
         byte out[] ;
       
     
        InputStream xml = new BufferedInputStream(new ByteArrayInputStream(source)); 
      
        InputStream style = new BufferedInputStream(new ByteArrayInputStream(st)); 
 
        OutputStream bos  =  new BufferedOutputStream(new ByteArrayOutputStream());
          
     
 
    TransformerFactory tFactory = TransformerFactory.newInstance();
 
    Transformer transformer =
      tFactory.newTransformer
         (new javax.xml.transform.stream.StreamSource
                    (xml));
      
    transformer.transform
      (new javax.xml.transform.stream.StreamSource
             (style),
       new javax.xml.transform.stream.StreamResult
 
      (bos));
      
 
      bos.write(out); 
      
    }
  
  catch (Exception e) {
    e.printStackTrace( );
    }
  
  }
}
...
Рейтинг: 0 / 0
04.12.2014, 14:17
    #38824881
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование OutputStream в byte
Хороший человекНе могу понять почему OutputStream возвращается пустой.
Не могу понять: какой OutputStream, куда возвращается, где он пустой, как Вы это определили и почему он должен быть другим.
...
Рейтинг: 0 / 0
04.12.2014, 14:27
    #38824898
Хороший человек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование OutputStream в byte
Вот и я не могу понять:)
...
Рейтинг: 0 / 0
04.12.2014, 14:32
    #38824905
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование OutputStream в byte
Хороший человекВот и я не могу понять:)

Вы теряете ссылку на ByteArrayOutputStream и не сможете получить из него байты.

Что тут вообще проиходит понять сложно.

Почему вы сначала XML пишете в bos, а потом какую-то ещё фигню сверху?
...
Рейтинг: 0 / 0
04.12.2014, 14:35
    #38824920
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование OutputStream в byte
IMHO N1:
Начнем, догадываться с конца.
Наверное, вы ожидаете что-то в переменной out, я прав? Но почему там должно что-то быть?
Код: sql
1.
bos.write(out); 


IMHO Записывает пустую переменную out в поток. Сама переменная out от этого меняться не должна и не меняется. Как была пустая, так и осталась.

IMHO N2:
Начнем догадываться с начала.
Код: sql
1.
        OutputStream bos  =  new BufferedOutputStream(new ByteArrayOutputStream());


Лично мне этот код вообще не понятен, я бы сделал по другому:
Код: sql
1.
2.
        ByteArrayOutputStream myByteOutputStream = new ByteArrayOutputStream();
        OutputStream bos  =  new BufferedOutputStream( myByteOutputStream );


после чего, в конце работы, получил бы буфер с помощью вызова
Код: sql
1.
myByteOutputStream.toByteArray()



В общем, см. JavaDoc.

IMHO & AFAIK
...
Рейтинг: 0 / 0
04.12.2014, 14:39
    #38824927
Хороший человек
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование OutputStream в byte
Leonid Kudryavtsev, спасибо огромное. То что нужно. Все получилось:)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование OutputStream в byte / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]