java.io.ByteArrayOutputStream.toByteArray()会返回null吗?

时间:2012-04-09 09:08:42

标签: java null bytearrayoutputstream

就像标题所示,我在Javadoc中找不到任何关于它的线索。

3 个答案:

答案 0 :(得分:4)

不,它永远不会。它永远不会让 sense 返回null,如果你看一下实现它肯定不会。 (我意识到依靠文档化的保证通常比实现更好,但我认为没有理由认为它会在这里返回null。)

特别是documentation州:

  

创建一个新分配的字节数组。

  

返回:此输出流的当前内容,作为字节数组。

如果它返回null则不正确,不是吗?

答案 1 :(得分:0)

它会以某种方式返回null;)

ByteArrayOutputStream baos = new ByteArrayOutputStream()
{
    public byte[] toByteArray()
    {
        return null;
    }
};
System.out.println(baos.toByteArray());

<强>输出:

null

答案 2 :(得分:0)

不,不会。永远。查看代码ByteArrayOutputStream.toByteArray:

public synchronized byte toByteArray()[] {
    return Arrays.copyOf(buf, count);
}

Arrays.copyOf:

public static byte[] copyOf(byte[] original, int newLength) {
    byte[] copy = new byte[newLength];
    System.arraycopy(original, 0, copy, 0,
                     Math.min(original.length, newLength));
    return copy;
}