使用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/