我在高中,需要为我的 ap 计算机编程课程完成一个项目。基本上,我的老师在java中回顾了zlib解压缩和压缩,并告诉我们制作一个小java程序来解压一些压缩数据。我想补充一点,我是一个 Minecraft 上瘾者,发现 minecraft 中的块在 zlib 中被压缩,所以我开始解压缩这些块。无论如何,代码不起作用,我必须在星期二之前完成它。我犯了什么错误?所有帮助将不胜感激。代码:
public static void read(String filein) throws IOException, DataFormatException{
//Initialize
ArrayList<Byte> bufflist = new ArrayList<Byte>();
File file = new File(filein);
RandomAccessFile mcr = new RandomAccessFile(file, "r");
RandomAccessFile cache = new RandomAccessFile("cache", "rw");
RandomAccessFile out = new RandomAccessFile("out", "rw");
//read file
int dataread = 0;
mcr.seek(8192);
while (dataread < file.length() - 8192){
dataread = dataread + 1;
byte b = mcr.readByte();
bufflist.add(b);
}
mcr.close();
//decode
for (int y=0; y<bufflist.size()-1; y++){
cache.write(bufflist.get(y));
}
InflaterInputStream infl = new InflaterInputStream(new FileInputStream("cache"), new Inflater());
int data = infl.read();
out.write(data);
}
public static void main(String[] args) throws IOException, DataFormatException
{
read("r.1.1.mca");
}