我试图了解 ByteArray 中空字节的重要性。他们的行为像终结者吗?我的意思是,一旦写入空字节,我们就不能进一步写入 ByteArray 吗?
例如,
import flash.utils.*;
public class print3r{
public function print3r{
Util.print(nullout());
}
public function nullout:ByteArray (){
var bytes:ByteArray = new ByteArray();
bytes.writeInt(((403705888 + 1) - 1)); // Non Printable Characters
bytes.writeInt(((403705872 - 1) + 1)); // Non Printable Characters
bytes.writeInt(0x18101000); // Notice the NullByte in this DWORD
bytes.writeInt(0x41424344); // ASCII Characters ABCD
return bytes;
}
}
new print3r;
这给出了一个空白输出。
现在,如果我用 0x18101010 替换 DWORD 0x18101000,这次我可以在输出中看到 ASCII 填充 ABCD。
我的问题是,是否可以将空字节写入 ByteArray()?
我问的原因是因为我在 ActionScript 代码中看到,即使在写入空字节之后,也会在 ByteArray 上执行很多 writeInt 和 writeByte 操作。
谢谢。