NortUS Опубликовано 18 марта, 2009 Жалоба Share Опубликовано 18 марта, 2009 Просто ради проверки... После того как засовываешь массив в буфер, выкинь bb.toString() на консоль, чтобы проверить трассировку - корректно лм он в буфер врапает Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Daniel5555 Опубликовано 18 марта, 2009 Жалоба Share Опубликовано 18 марта, 2009 NortUS Добавил System.out.println("toString = " + bb.toString()); сразу после врапа... Выдает что-то, я бы сказал, странное: [B@190d11 toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4] ws[i] = 1633837952 [B@a90653 toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4] ws[i] = 0 [B@de6ced toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4] ws[i] = 0 [B@c17164 toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4] ws[i] = 0 [B@1fb8ee3 toString = java.nio.HeapByteBuffer[pos=0 lim=4 cap=4] ws[i] = 0 И так далее. Везде "java.nio.HeapByteBuffer[pos=0 lim=4 cap=4]". Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
X-Reiless Опубликовано 19 марта, 2009 Жалоба Share Опубликовано 19 марта, 2009 Скорее всего, я ошибаюсь, ибо "кроссплатформенные тормоза" стараюсь благополучно забыть. Сильно не пинать. Вместо for (int i = 0; i < 16; ++i) { System.arraycopy(bloc, 4*i, blocs[i], 0, 4); System.out.println(blocs[i]); ws[i] = byteArrayToInt(blocs[i]); System.out.println("ws[i] = " + ws[i]); } попробуй ByteBuffer bbuf = ByteBuffer.wrap(bloc); bbuf.order(LITTLE_ENDIAN); /// или bbuf.order(BIG_ENDIAN); , не помню for (int i = 0; i < 16; ++i) { ws[i] = bbuf.getInt(i*4); System.out.println("ws[i] = " + ws[i]); } В том, что идет ниже, я потерялся, не соображу, где и чем ты заполняешь значениями элементы blocs[16] - blocs[63], и что с ними потом делаешь. bb.toString(), судя по мануалу, выдает то, что задумано - состояние буфера, а не содержимое. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Daniel5555 Опубликовано 19 марта, 2009 Жалоба Share Опубликовано 19 марта, 2009 NortUS X-Reiless Когда я этой ночью снова посмотрел на код, то я выяснил, что нули, которые он выдавал, были вполне нормальными. Надо было проверить входные данные как следует. Но спасибо за помощь. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
NortUS Опубликовано 19 марта, 2009 Жалоба Share Опубликовано 19 марта, 2009 Ну да, состояние... Просто я грешил на то, что при врапе сам по себе буфер не создается, нужно предваретильено Allocate вызвать. Статус же показал - все нормально Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
VECTOR Опубликовано 19 марта, 2009 Жалоба Share Опубликовано 19 марта, 2009 Я понимаю что ООП, Java итд. Но вам не кажется извратом создавать новый объект для того чтобы прочитать int из массива байтов? Кстати, мне так показалось что bloc это byte[] , да? Глядя на "ту сторону" как назвал ее Daniel5555: не будет ли легче создать буфер только один раз, врапнуть тот самый bloc и прочитать из него сколько надо интов? Избавиться таким образом от вызова функции, создания объектов, копирования массивов(пусть и маленьких) + еще наверно GC вам спасибо скажет. Если не прав, не пинайте) Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
X-Reiless Опубликовано 19 марта, 2009 Жалоба Share Опубликовано 19 марта, 2009 Сейчас я пишу мой первый проект на Java.Рекомендую обратить внимание на слово первый. Хотя я бы выбрал для первого helloworld чего-нибудь попроще :)).Кстати, мне так показалось что bloc это byte[] , да?Полный исходный текст в первом сообщении под катом.не будет ли легче создать буфер только один раз, врапнуть тот самый bloc и прочитать из него сколько надо интов?Ты мой пост из принципа не читал или по традиции? Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
VECTOR Опубликовано 19 марта, 2009 Жалоба Share Опубликовано 19 марта, 2009 Рекомендую обратить внимание на слово первый. Хотя я бы выбрал для первого helloworld чего-нибудь попроще :)). Норм) Мой первый на С# был LZ78. Если человек уже умеет прогить, то может выбрать сразу чего-нибудь по-сложнее. Плюс оно интереснее и полезней)) P.S. Гомен, пост твой глянул совсем бегло, не посмотрев на сорцы. ADD: Немного пропаганды))) http://socghop.appspot.com/program/home/google/gsoc2009 Никого не интересует? Поработать летом на опенсорс и получить 4500 зеленых? Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Daniel5555 Опубликовано 20 марта, 2009 Жалоба Share Опубликовано 20 марта, 2009 VECTOR Я понимаю что ООП, Java итд. Но вам не кажется извратом создавать новый объект для того чтобы прочитать int из массива байтов? Мне кажется, что вся программа написана отвратно, тем более она писалась практически без планирования за одну ночь. В результате сейчас идет усиленная ловля багов. Кстати, если есть какие-то особо ламерские моменты в коде, которые видны невооруженным глазом, просьба сообщить. int у меня сейчас по-другому читается, один из массивов я убрал так же. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Black Cat Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 Вообщемпередо мной щас стоит задача написать используя WinApi программу которая бы передавала и принимала по сети файлы,что по этому поводу стоит почитать? Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.