Java 字节数组的声明

Java 字节数组的声明,java,arrays,bytearray,Java,Arrays,Bytearray,我遇到一个数组声明,如下所示: byte [] byteArray = StringFormatter.padWithSpacesTo("", 1000).getBytes(); 在该行之后,将使用以下行: putBytes(byteArray, name, 0); putBytes(byteArray, addressLine1, 100); 这个数组声明在做什么?它使用StringFormatter创建一个填充空格的1000个字符的字符串。然后使用getBytes()将其

我遇到一个数组声明,如下所示:

byte [] byteArray = StringFormatter.padWithSpacesTo("", 1000).getBytes();
在该行之后,将使用以下行:

    putBytes(byteArray, name, 0);
    putBytes(byteArray, addressLine1, 100);

这个数组声明在做什么?

它使用StringFormatter创建一个填充空格的1000个字符的字符串。然后使用getBytes()将其作为字节数组返回

因此,它创建了一个1000个字符长的数组,在平台默认编码中用“”填充(因此几乎可以肯定是32个字符)


这并不是一个很好的方法…更好的方法是

它使用StringFormatter创建一个充满空格的1000个字符的字符串。然后使用getBytes()将其作为字节数组返回

因此,它创建了一个1000个字符长的数组,在平台默认编码中用“”填充(因此几乎可以肯定是32个字符)


这并不是一个很好的方法…更好的方法是

这是平台默认编码中
1000
空格的字节表示。事实上,问题太广泛了。你不明白的是哪一部分?我的疑问是为什么我们需要创建这样的字节数组。我们可以使用**byte[]byteArray=新字节[1000]**请参阅更新部分的下几行代码。这是平台默认编码中
1000
空格的字节表示。事实上,问题太广泛了。你不明白的是哪一部分?我的疑问是为什么我们需要创建这样的字节数组。我们可以使用**byte[]byteArray=新字节[1000]**请参阅更新部分的下几行代码。我们可以使用byte[]byteArray=new byte[1000]吗;而不是上面的代码?@Leo是的,这是正确的方法。请注意,新数组将填充0而不是32。如果您需要32,则使用
数组。填充
。您所说的“0而不是32”是什么意思?是Ascii值吗?如果是,那么考虑到更新部分中的以下代码是否会有任何差异?@leo是。因为除非进行填充,否则所有未写入的内容都将被0填充,而不是空格;而不是上面的代码?@Leo是的,这是正确的方法。请注意,新数组将填充0而不是32。如果您需要32,则使用
数组。填充
。您所说的“0而不是32”是什么意思?是Ascii值吗?如果是,那么考虑到更新部分中的以下代码是否会有任何差异?@leo是。因为除非你做了填充,否则所有你没有写的东西都会被0填充,而不是空格。