我想将此表添加到文件中:
public static final short[] FMW = {0x18, 0xC1, 0x00, 0x00, 0x36, 0xC1, 0x00}
我需要使用一个短数组,因为0xC1值不像字节一样被识别。
然后,我想把这个数组放在我的文件中:
DataOutputStream out = null;
try {
out = new DataOutputStream(new FileOutputStream(file));
for (short anInt : FMW)
out.write((byte)anInt);
out.close();
} catch (IOException e) {
...
但是当我在那之后阅读这个文件内容时,它是不正确的:
try {
FileReader reader = new FileReader(file);
if (file.length() < offset+count) count = (int)(file.length() - offset);
char[] rawdata = new char[count];
reader.read(rawdata, 0, FMW.length);
...
我的rawdata包含:
[0] : 0x18
[1] : 0xFFFD
[2] : 0x00
[3] : 0x00
[4] : 0x36
[5] : 0xFFFD
[6] : 0x00
感谢您的帮助!
答案 0 :(得分:0)
我也遇到了类似的问题,然后我写了一个方法,它接受一个short[]
数组并返回一个byte[]
数组 -
public byte[] shortToByte(short[] shortInts) {
int j=0;
int length=shortInts.length;
byte[] byteData=new byte[length*2];
for (int i=0;i<length;i++) {
byteData[j++]=(byte)(shortInts[i]>>>8);
byteDataj++]=(byte)(shortInts[i]>>>0);
}
return byteData;
}