This question already has answers here:
Java Byte Array to String to Byte Array
(11个答案)
3年前关闭。
我需要从
这是代码:
注意:这里有一些Vaadin特定的代码,这些代码与其上载组件有关。上载组件应提供一个OutPutStream,到目前为止,它是正确的。
(11个答案)
3年前关闭。
我需要从
Byte[]
中制作一个ByteArrayOutputStream
,但这不起作用。当我记录baos.toByteArray();
的结果时,它只显示11个字符,无论我尝试上传哪个文件,日志条目都如下所示:[B@544641ab
这是代码:
final ByteArrayOutputStream baos = new ByteArrayOutputStream(); // Stream to write to
upload = new Upload();
upload.setReceiver(new Upload.Receiver() {
@Override
public OutputStream receiveUpload(String filename, String mimeType) {
return baos; // Return the output stream to write to
}
});
upload.addSucceededListener(new Upload.SucceededListener() {
@Override
public void uploadSucceeded(Upload.SucceededEvent succeededEvent) {
System.out.println ( baos.toByteArray().toString());
}
});
注意:这里有一些Vaadin特定的代码,这些代码与其上载组件有关。上载组件应提供一个OutPutStream,到目前为止,它是正确的。
最佳答案
问题[B@544641ab
是baos.toByteArray()
返回的字节数组在内存中的地址,而不是它的值。
解
使用Arrays.toString(baos.toByteArray())
代替baos.toByteArray().toString()
。您can也使用baos.toString()
。
关于java - 从ByteArrayOutPutSteam到Byte []的工作与预期不符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39975575/
10-08 22:55