This question already has answers here:
Java Byte Array to String to Byte Array
                                
                                    (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@544641abbaos.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