当前位置: 首页 > 知识库问答 >
问题:

无法看到控制台[duplicate]中打印的数组内容

司易安
2023-03-14
public RMI post(PrintStream stream, Object object)
{
try
{
    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    ObjectOutputStream oos = new ObjectOutputStream(baos);

    //

    oos.writeObject(System.rmi);

    oos.flush();

    oos.close();

    //

    stream.println("Class size: " + baos.toByteArray().length);

    stream.println("Class data: " + baos.toByteArray());

    stream.flush();

    stream.close();

    //
}
catch (Exception e)
{
    e.printStackTrace();
}

return this;

}

这将打印[B@12843fce而不是预期的底层字节码结构。同样的操作可以在FileOutputStream中找到,但在这里不能在ByteArrayOutputStream中找到。我们真的需要这个来工作。你能发现哪里出了问题或者发生了什么吗?

共有1个答案

邢博学
2023-03-14

不要打印对对象的引用,需要一种正确的方法将字节[]转换为字符串,常用的方法是数组。toString(baos.toByteArray())

 类似资料:
  • 我假设eclipse中存在一些限制,阻止将大量数字打印到控制台。 编辑:在5572处,控制台的输出将被清除,这是输出: 你想看多少个素数?5572

  • 我真的被困在作业的这一特定部分,它要求我将简单文本打印到控制台中,然后创建一个文件(无论主文件中的std::string文件名是什么),并将控制台的内容打印到该文件中。 我真的很困惑,因为该函数需要ostream,而且它还需要该函数使用任何文件名(在本例中是statistics.txt,只是为了测试该函数是否工作)。 函数是PrintStatistics。 我知道我可以使用cout在控制台上打印,

  • 问题内容: 我的C程序粘贴在下面。在bash中,程序打印“ char is”,不打印Ω。我的语言环境均为en_US.utf8。 问题答案: 这很有趣。显然,编译器将omega从UTF-8转换为UNICODE,但libc某种程度上将其弄乱了。 首先:-format说明符期望一个(即使在wprintf -version 中也是如此),因此您必须指定(并因此指定字符串)。 其次,如果您像这样将语言环境设

  • 你可以使用printf将消息打印到控制台,从而知道应用程序是如何运行的。这是调试代码的很有用的手段,因为你可以打印变量的值、知道什么时候代码将阻塞等等。 我们尝试使用函数unsigned char leds_get(void);打印LED的状态。 获取LED的状态,并将其打印到屏幕。修改test-leds.c如下: #include "contiki.h" #include "dev/leds.h

  • 问题内容: 在Java应用程序中,我使用了对的调用。现在,我想找到一种以编程方式删除此内容的方法。 我找不到与谷歌的任何解决方案,所以有什么提示吗? 问题答案: 你可以将退格字符打印的次数与之前打印的字符相同。 注意:这在Mars(4.5)之前的旧版本的Eclipse控制台中无法正常工作。但是,这在命令控制台中可以正常工作。

  • 我试图使用TDD(测试驱动开发)与。当我使用时,不会到控制台。 我正在使用来运行它。 似乎说默认情况下它应该工作:http://pytest.org/latest/capture.html 但是: 没有任何东西被打印到我的标准输出控制台(只是正常的进度和多少测试通过/失败)。 我正在测试的脚本包含打印: 在模块中,默认情况下打印所有内容,这正是我所需要的。但是,出于其他原因,我希望使用。 有人知道