Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> NIO вывод в консоль 
:(
    Опции темы
gelo86
Дата 24.9.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 388
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Пробою начать изучать NIO. Пишу так:

Код

    ByteBuffer outBuffer = ByteBuffer.allocate(1000000);
    WritableByteChannel wbc = Channels.newChannel(System.out);
    for (int i = 0; i < "str".length(); i++) {
        outBuffer.putChar("str".charAt(i));
    }
   wbc.write(outBuffer);


Но в консоль текст невиводится. Может кто знает почему ?
PM MAIL   Вверх
ivg
Дата 24.9.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 33
Всего: 81



Код

outBuffer.flip();

PM MAIL   Вверх
gelo86
Дата 24.9.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 388
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Савцем забил вписать, что исползую outBuffer.flip(); перед самим  wbc.write(outBuffer); но результат тотже.

PM MAIL   Вверх
can4ec
Дата 25.9.2009, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 25.4.2006

Репутация: 1
Всего: 1



Код

        ByteBuffer outBuffer = ByteBuffer.allocate(1000000);
        WritableByteChannel wbc = Channels.newChannel(System.out);
        for (int i = 0; i < "str".length(); i++)
        {
            outBuffer.putChar("str".charAt(i));
        }
        outBuffer.rewind();
        wbc.write(outBuffer);


А почему бы так не писать?

Код

        ByteBuffer outBuffer = ByteBuffer.wrap("str".getBytes());
        WritableByteChannel wbc = Channels.newChannel(System.out);
        outBuffer.rewind();
        wbc.write(outBuffer);

PM MAIL   Вверх
gelo86
Дата 5.10.2009, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 388
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Цитата(can4ec @ 25.9.2009,  11:10)
Код

        ByteBuffer outBuffer = ByteBuffer.allocate(1000000);
        WritableByteChannel wbc = Channels.newChannel(System.out);
        for (int i = 0; i < "str".length(); i++)
        {
            outBuffer.putChar("str".charAt(i));
        }
        outBuffer.rewind();
        wbc.write(outBuffer);


А почему бы так не писать?

Код

        ByteBuffer outBuffer = ByteBuffer.wrap("str".getBytes());
        WritableByteChannel wbc = Channels.newChannel(System.out);
        outBuffer.rewind();
        wbc.write(outBuffer);



Можно и так, но почему неработает первое ?
PM MAIL   Вверх
sergioK
Дата 7.10.2009, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Цитата(gelo86 @ 5.10.2009,  19:23)
Цитата(can4ec @ 25.9.2009,  11:10)
Код

        ByteBuffer outBuffer = ByteBuffer.allocate(1000000);
        WritableByteChannel wbc = Channels.newChannel(System.out);
        for (int i = 0; i < "str".length(); i++)
        {
            outBuffer.putChar("str".charAt(i));
        }
        outBuffer.rewind();
        wbc.write(outBuffer);


А почему бы так не писать?

Код

        ByteBuffer outBuffer = ByteBuffer.wrap("str".getBytes());
        WritableByteChannel wbc = Channels.newChannel(System.out);
        outBuffer.rewind();
        wbc.write(outBuffer);



Можно и так, но почему неработает первое ?

у меня работает на консоле все видно, может у вас эксептион а кач пустой ? 

 а более кошерно будет так  smile 


 
Код

       ByteBuffer outBuffer = ByteBuffer.allocate("str".length()); // памяти кажеться что много а на самом деле не очень 
            WritableByteChannel wbc = Channels.newChannel(System.out);
            for (int i = 0; i < "str".length(); i++) 
             outBuffer.put((byte) "str".charAt(i));     // именно байт, баффер  то создан байтовый    
                                                                                                                                // мясо отдельно - молоко отдельно  :blum3 
           
    
         outBuffer.flip();            
        wbc.write((ByteBuffer) outBuffer );


или если хотим работать с чарами то 
Код

  CharBuffer charBuf =outBuffer.asCharBuffer();
  или charBuf.append("str".charAt(i));   // а потом его как либо выводить на печать 



 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1331 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.