首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java PrintWriter不发送字节数组

Java PrintWriter不发送字节数组
EN

Stack Overflow用户
提问于 2012-10-04 19:34:32
回答 2查看 6.8K关注 0票数 1

需要通过套接字发送未知大小的字节数组。当我尝试将字节数组写入printwriter时,例如

代码语言:javascript
复制
        writeServer = new PrintWriter(socketconnection.getOutputStream());
        writeServer.flush();
        writeServer.println("Hello World");
        writeServer.println(byteArray.toString());

它是在服务器上接收的,但只是一个5-6个字符的字符串,始终以[B@.....但是当我通过输出流发送它时,比如

代码语言:javascript
复制
        writeServer.println("Hello World");
        socketconnection.getOutputStream().write(byteArray);

它在服务器上被正确地接收。但问题出在第二个选项中,"Hello World“字符串无法到达服务器。我想把这两样东西都送到服务器上。

我怎么发动汽车呢?

EN

回答 2

Stack Overflow用户

发布于 2012-10-04 19:40:45

您正在尝试混合二进制和文本,这肯定会令人困惑。我建议你使用其中的一个。

代码语言:javascript
复制
// as text
PrintWriter pw = new PrintWriter(socketconnection.getOutputStream());
pw.println("Hello World");
pw.println(new String(byteArray, charSet);
pw.flush();

代码语言:javascript
复制
// as binary
BufferedOutputStream out = socketconnection.getOutputStream();
out.write("Hello World\n".getBytes(charSet));
out.write(byteArray);
out.write(`\n`);
out.flush();
票数 2
EN

Stack Overflow用户

发布于 2012-10-04 19:57:58

byteArray.toString()将返回人类可读的byteArray格式。即使对于数组,它也永远不是人类可读的。

如果你想以String的形式传输byteArray,那么你应该使用

代码语言:javascript
复制
String str = new String(bytes, Charset.defaultCharset());//Specify different charset value if required.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12726377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档