添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
刚毅的火车  ·  上线了文物 | ...·  1 月前    · 
侠义非凡的红金鱼  ·  macOS Sierra ...·  3 月前    · 
眼睛小的铁链  ·  OpenCV ...·  9 月前    · 
本文介绍如何使用Java实现文件归档,通过定义存储格式,将多个文件的字节合并到一个文件中。归档过程中,文件名和内容被存储,包括文件大小信息。DataUtil类用于字节转换,归档类实现具体操作,经过测试,成功生成归档文件并能正确还原文件。 摘要由CSDN通过智能技术生成

基本思路:

文件归档,换句话就是把多个文件的字节存到一个文件中。为此我们必须定义存储格式,才能从包中把文件重新抽出来。
文件由文件名和内容组成。要想完整的还原文件,我们必须同时存下这两个东西,而文件名和内容的字节大小我们都是不知道的,为此我们必须要用固定大小的空间存储它们的大小。

大小(单位字节)

因为文件内容大小是4个字节(也就是int型),我们要把它存到文件,就要转化成字节数组。我们规定低位靠前,高位靠后。按照这种格式封装转换操作与一个基础类DataUtil中。

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;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;打包文件,换句话就是把多个文件的字节存到一个文件中。为此我们必须定义存储格式,才能从包中把文件重新抽出来。&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;a
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays...