文件归档,换句话就是把多个文件的字节存到一个文件中。为此我们必须定义存储格式,才能从包中把文件重新抽出来。 文件由文件名和内容组成。要想完整的还原文件,我们必须同时存下这两个东西,而文件名和内容的字节大小我们都是不知道的,为此我们必须要用固定大小的空间存储它们的大小。
因为文件内容大小是4个字节(也就是int型),我们要把它存到文件,就要转化成字节数组。我们规定低位靠前,高位靠后。按照这种格式封装转换操作与一个基础类DataUtil中。
package util; public class DataUtil { public static byte[] int2bytes(int src) { byte[] rt = new byte[4]; for(int i=0; i<4; ++i) { rt[i] = (byte)(src>>(i*8)); return rt; public static int bytes2int(byte[] src) { int rt = 0; for(int i=0; i<4; ++i) { rt |= (src[i]&0xFF)<<(i*8); //字节在进行移位运算时,首先会被转换成int类型, //此时若字节的符号位为1,它前面就会补全1,比如: //0x80在byte类型时是-128,而转换成int,它的值还是 //-128,即0xffffff80,而我们移位运算想要的是 //0x00000080,即前面补全0,跟我们拆时一致。为此, //我们让它与0xFF相与,从0xffffff80变为0x00000080。 return rt; 基本思路:&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;打包文件,换句话就是把多个文件的字节存到一个文件中。为此我们必须定义存储格式,才能从包中把文件重新抽出来。&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;a import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Arrays...