Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中将字节[]数组中的原始字节内容打印到标准输出?_Java_Bytearray - Fatal编程技术网

如何在Java中将字节[]数组中的原始字节内容打印到标准输出?

如何在Java中将字节[]数组中的原始字节内容打印到标准输出?,java,bytearray,Java,Bytearray,我正在做与此处描述相同的项目: 我的问题是,当我试图打印出字节时,我会得到奇怪的结果。我的问题出现在以下代码中(很抱歉我选择了错误的变量): for(int k=0;k

我正在做与此处描述相同的项目:

我的问题是,当我试图打印出字节时,我会得到奇怪的结果。我的问题出现在以下代码中(很抱歉我选择了错误的变量):

for(int k=0;k
最后两个for循环不打印其字节数组的内容。因此,在使用gzip时,我遇到了一个意外的文件结束错误。奇怪的是,如果我注释掉第二个for循环块(包含变量m和ii的块),就不会打印出任何内容

那么,如何正确地打印出字节数组的内容呢?为什么第一个for循环在第二个for循环未被注释时正确打印出来?如果第二个for循环被注释,为什么它不打印任何内容

编辑:

更具体地说:


我想写出原始字节。我想这样做,以便我的每个字节数组都紧跟在后面,假设您的字节数组被称为buf

 System.out.println(Arrays.toString(buf));
编辑: 听起来您真正想做的是将字节写入标准输出,而不是打印它们。有关打印到流和写入流之间的区别,请参见。最简单的方法应该是调用write(byte[]b)方法:

/*这里我显示的是非十六进制格式的原始数据*/

    System.out.println(Arrays.toString(mByteArray));

我想这对你们会有帮助的

如果使用System.out.write,可能需要在代码末尾写入“\n”字符来刷新输出流。@BhavikAmbani:字节是数字,我不明白为什么不能在控制台上打印数字。以上就是这么做的。但我想打印原始的bytesThanks man。在你提出之前不久,我遇到了PrintStream。它确实按我想要的方式打印出来。我还在代码中的其他地方发现了一个导致这种奇怪行为的bug。再次感谢。
System.out.write(buf);
 /* There is an image / ic_launcher in the drawable folder for which I am making ByteArray   */



    Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.img);
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] mByteArray = stream.toByteArray();
    System.out.println(Arrays.toString(mByteArray));