我想写一个字节数组到文件。这是网络http://allmybrain.com/2012/03/16/quick-convert-raw-g711-ulaw-audio-to-a-au-file/
中的代码 import struct
header = [ 0x2e736e64, 24, 0xffffffff, 1, 8000, 1 ]
o=open('out.au','wb')
o.write ( struct.pack ( ">IIIIII", *header ) )
raw = open('in.raw','rb').read()
o.write(raw)
o.close()
我转换为java:
byte [] header= { 0x2e736e64, 24, 0xffffffff, 1, 8000, 1 };
FileOutputStream out = new FileOutputStream(file);
out.write(header);
但这是错误的。你能帮我解决吗?感谢
答案 0 :(得分:5)
在你的python代码中,你写的是32位整数而不是8位字节; 您可以使用以下代码获得相同的结果:
byte [] header= { 0x2e, 0x73, 0x6e, 0x64,
0x0, 0x0, 0x0, 24,
-1, -1, -1, -1,
0, 0, 0, 1,
0, 0, 0x1f, 0x40,
0, 0, 0, 1 };
FileOutputStream out = new FileOutputStream(file);
out.write(header);