java - 如何在Java中将整数的字节字符串打印到套接字?

标签 java android sockets type-conversion printwriter

使用Java 8进行Android开发。

如何将base256中的整数打印到套接字?我出于某种原因一直尝试的这段代码可以打印5个字节...

PrintWriter out = new PrintWriter(
    new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
int FileSize = 430200;
byte[] BytFileSize = ByteBuffer.allocate(4).putInt(FileSize).array();
String StrFileSize = new String(BytFileSize, "ISO-8859-1");
out.print(StrFileSize);
out.flush();

它打印:
"00 06 c2 90 78"

预期为:
"00 06 90 78"

奇怪的是,它在两个16位元之间插入了一个“c2”。

最佳答案

这有效:

OutputStream out = socket.getOutputStream();
int FileSize = 430200;
byte[] BytFileSize = ByteBuffer.allocate(4).putInt(FileSize).array();
out.write(BytFileSize);
out.flush();

但是我不确定为什么PrintWriter(BufferedWriter(OutputStreamWriter(OutputStream)))。print(String)版本无法正常工作。

关于java - 如何在Java中将整数的字节字符串打印到套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33588866/

相关文章:

android - 如何在android上显示Json抓取的实时图片

sockets - REST 用于低延迟消息传递。

c# - 将 byte[] 从 Android 应用程序传递到 C# 控制台应用程序?

java - 坚持这段代码

java - spring 集成 channel 是单线程的吗?

java - 不同的嵌套列表,按值属性比较列表项,Java8 Lambda

android - 通过蓝牙连接到设备,锁定的应用程序

java - 如何通过 asynctask 暂停下载过程

c# - 如何使用 WinRT StreamSockets 接收数据包上传确认?

java - 外观模式-请求流程