как записать массив символов в java socketchannel

как записать массив символов в java socketchannel. Я не могу записать данные char в socketchannel, так как для этого требуется ByteBuffer.


person Prithvi    schedule 20.12.2012    source источник
comment
Пожалуйста, предоставьте код на ваш вопрос.   -  person jens-na    schedule 20.12.2012
comment
См.: stackoverflow.com/questions /871870/.   -  person Adrian Ber    schedule 20.12.2012


Ответы (2)


Пробовали ли вы использовать putChar метод ByteBuffer?

ByteBuffer buf = ByteBuffer.allocate(1024);

for (char ch : myChars) {
  buf.putChar(ch);
}
person Andrey Adamovich    schedule 20.12.2012

Несколько способов, например

char[] c = {'1', '2'};
String str = new String(c);
ByteBuffer bb = Charset.defaultCharset().encode(str);

or

ByteBuffer.wrap(str.getBytes());
person Evgeniy Dorofeev    schedule 20.12.2012
comment
Только комментарий, скорее всего, вы захотите явно указать, какой набор символов вы используете для кодирования массива символов, а не просто использовать набор символов по умолчанию. Ваш сервер, вероятно, ожидает определенного, и вы не хотите быть жертвой прихотей любой платформы и локали, на которой выполняется ваш код. - person Charlie; 20.12.2012