6

我正在开发一个 android 应用程序,它可以下载多个并行段中的文件。我分别拥有它们,现在我想将它们全部加入。

为了更清楚,我将通过一个简单的示例向您展示。假设我下载了 100kb 的 4 段文件。第一段是从 0kb 到 25kb,第二段是从 25kb 到 50kb,第三段是从 50kb - 75kb,最后一段是从 75kb-100kb。文件类型可以是mp3、avi等。

现在我需要加入它们,以便这些段(文件部分)成为一个文件。我希望你能帮我解决这个问题。谢谢你的时间!

编辑:例如,它更像是分段的 avi(xxx.avi.001, xxx.avi.002, xxx.avi.003) 文件,我们有时会下载到我们的 PC 中并使用HJSplit将文件合并到一个文件中。

4

2 回答 2

3

尝试这样,从单独的文件一个一个地读取,写入一个文件。下面的简单代码供您理解。试试这个,我希望它对你有用。您可以改进此代码。

    InputStream in1 = new FileInputStream("sourceLocation1");
    InputStream in2 = new FileInputStream("sourceLocation2");
    InputStream in3 = new FileInputStream("sourceLocation3");
    InputStream in4 = new FileInputStream("sourceLocation4");

    OutputStream out = new FileOutputStream("targetLocation");

    // Copy the bits from instream to outstream
    byte[] buf = new byte[1024];
    int len;

    while ((len = in1.read(buf)) > 0) {
        out.write(buf, 0, len);
    }

    while ((len = in2.read(buf)) > 0) {
        out.write(buf, 0, len);
    }

    while ((len = in3.read(buf)) > 0) {
        out.write(buf, 0, len);
    }

    while ((len = in4.read(buf)) > 0) {
        out.write(buf, 0, len);
    }

    in1.close();
    in2.close();
    in3.close();
    in4.close();
    out.close();
于 2015-03-18T08:53:39.040 回答
1

尝试RandomAccessFile。它具有强大而灵活的功能,使您可以在准确的字节位置读取或写入文件。

于 2015-03-18T16:27:11.637 回答