>>" + byte_msg) HttpServletRequ-6ren">
gpt4 book ai didi

java - 将数组字节传递给 getReader

转载 作者:可可西里 更新时间:2023-11-01 16:34:58 26 4
gpt4 key购买 nike

如何在不更改数据的情况下将数组字节传递给 getReader。

byte_msg = Some array byte
println(">>>" + byte_msg)
HttpServletRequest.getReader returns new BufferedReader(
new InputStreamReader(new ByteArrayInputStream(byte_msg)))

并发布接收者:

byte_msg = IOUtils.toByteArray(post.request.getReader)
println("<<<" + byte_msg)

并打印返回。为什么我会得到不同的答案?

>>>[B@38ffd135
<<<[B@60c0c8b5

最佳答案

您正在打印出 byte[].toString() 的结果 - 不是字节数组的值...它只是值由 Object.toString() 返回 - [B 用于“字节数组”,@ 然后是哈希码。您需要将数据转换为十六进制或类似的东西——您需要明确地这样做。例如,您可以使用 Hex来自 Apache Commons Codec 的类(class):

String hex = new String(Hex.encode(byte_msg));

并不是说如果这是任意二进制数据,您应该首先使用 InputStreamReader 将其转换为字符串。 InputStreamReader 专为编码文本数据的二进制数据而设计 - 在 IMO 中,您也应该指定编码。

如果你想传输任意二进制数据,你应该或者传输它而不进行任何转换为​​文本(所以看看你的帖子类是否允许)或者使用像十六进制或 base64 与二进制数据之间的转换安全

关于java - 将数组字节传递给 getReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com