内存中有一个SHORT数组,如何输出到文件,采用二进制格式把内存中数据原封不动输出文件~麻烦大家帮帮忙!~

解决方案 »

  1.   

    public static final byte[] toByteArray(short changeData)
    {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
            DataOutputStream dos = new DataOutputStream(baos);
            byte[] setByteData = null;        try 
            {
                dos.writeShort(changeData);
                setByteData = baos.toByteArray();
            } 
            catch (Exception e) 
            {
        printStackTrace(e);
            }
            return setByteData;
    }
      

  2.   

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    public class WriteShorts {
     
        public static void main(String[] args) throws Exception {
            short[] shorts = {1, 2, 3, 4, 5};
            String filename = "c:\\data.dat";
            writeShorts(shorts, filename);
        }
     
        private static void writeShorts(short[] shorts, String filename) throws IOException {
            File file = createFile(filename);
            FileOutputStream fos = new FileOutputStream(file);
            for (short aShort : shorts) {
                fos.write(toBytes(aShort));
            }
            fos.close();
        }
     
        private static File createFile(String filename) throws IOException {
            File file = new File(filename);
            if (!file.exists()) {
                file.createNewFile();
            }
            return file;
        }
     
        private static byte[] toBytes(short aShort) {
            return new byte[]{
                    (byte) ((aShort >> 8) & 0xFF), 
                    (byte) (aShort & 0xFF)
            };
        }
    }