![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
TieRR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Собственно, как это реализовать?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В простейшем случае:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
TieRR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Сорри, не уточнил: чтение двоичного потока из бд. Вот код, который надо исправить:
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
1. Порядок байт какой?
2. Откуда берется InputStream совершенно без разницы, из БД, файла. 3. Что не так с этим кодом? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
TieRR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Проблема в том, что после этих преобразований в массиве хранятся одни нули.
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Почему там используется Float, ты же говорил что там лежат double?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
TieRR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
ну потому что только у флоата нашел такой метод преобразования битов...
Поэтому и вопрос стоит о приведения к даблу, так как не знаю как) |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
А Double.longBitsToDouble() это что?
И чем тебя не устраивает тот способ, что я показал? Зачем нужен свой велосипед? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
TieRR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
так а в качестве параметра что использовать тогда?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Для начала прекрати изобретать велосипед и используй readDouble().
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
alexadr |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.9.2006 Репутация: 4 Всего: 4 |
Я бы просто подебажил ентот код, - пораспечатывал бы каждый байт в виде двоичной строки. Распечатал бы получившийся Integer который передается на методу Float.intBitsToFloat:
|
||||
|
|||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Категорически нельзя использовать available() для оценки количества данных. Данные из внешнего источника (база данных, удаленный сервер) могут загружаться частями. Соответственно, available() будет возвращать от 0 (вначале загрузки данных в стрим) до МАХ.
Не нужна проверка while(dis.available()>0) , потому что readByte - блокирующая операция (в документации явно не написано, но для чтения используется InputStream.read() - там написано, что блокирующая). Надо while(true) и выход из цикла по EOFException (нормальное завершение чтения) или IOException. Метод readFloat делает тоже самое, что код автора топика (кроме конечно skipBytes(4) - это вообще зачем пропускать следующие 4 байта ? ):
какой смысл повторять readFloat, да еще с учетом skipBytes возможно неправильно? Поскольку размер данных не известен, то заранее создавать массив data[] не получится - надо использовать динамическую коллекцию ( ArrayList<Float> например ). Это сообщение отредактировал(а) COVD - 26.3.2008, 17:34 |
|||
|
||||
TieRR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
как я могу применять readdouble, когда там идет двоичный поток длиной в тысячи байт???
|
|||
|
||||
alexadr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.9.2006 Репутация: 4 Всего: 4 |
Ну так метод надо дергать в цикле readDouble().
|
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Про циклы никогда не слышал? ![]()
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |