我可以直接从文件夹创建一个byte []吗?

时间:2013-02-22 12:15:27

标签: java zip bytearray directory

Web服务期望byte[]来自zip文件。

我在一个文件夹中有一些文件,我用Java压缩,然后从这个zip文件中获取byte[]

这是必要的,还是可以直接从文件夹中创建byte[]

2 个答案:

答案 0 :(得分:1)

文件夹是文件的集合。它是一个容器。它首先没有字节流。

另一方面, ZIP (或任何存档)是一个文件。关于不同文件信息存储在ZIP文件中本身

但是,您可以遍历文件夹内容,编写一个字节数组然后使用它(在创建ZIP时,您仍然这样做)。

答案 1 :(得分:1)

我认为这样的事情只要文件不会很大就能让你做你想做的事而不用写。

String[] sourceFiles = { "C:/file1", "C:/file2" };

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zout = new ZipOutputStream(baos);

byte[] buffer = new byte[4096];

for (int i = 0; i < sourceFiles.length; i++)
{
    FileInputStream fin = new FileInputStream(sourceFiles[i]);
    zout.putNextEntry(new ZipEntry(sourceFiles[i]));

    int length;
    while ((length = fin.read(buffer)) > 0)
    {
        zout.write(buffer, 0, length);
    }

    zout.closeEntry();
    fin.close();
}

zout.close();

byte[] bytes = baos.toByteArray();