Android:将多部分文件连接在一起以制作单个文件

标签 android file http join segment

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

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

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

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

最佳答案

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

    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();

关于Android:将多部分文件连接在一起以制作单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11367247/

相关文章:

c# - 从一个链接下载多个文件

android - React Native yarn android 工作正常,但 ./gradlew assembleRelease 构建在更新compileSdkVersion和targetSdkVersion到31后失败

android - Realm OrderedRealmCollectionChangeListener 不起作用

java - 运行react-native run-android 时MainActivity.java 出现错误

php - 无法在 simplexml_load_file() 中打开流错误

php - Laravel Guzzle Http Auth 不起作用

java - 如何在Netty4中设置outbout HttpResponse的内容?

android - 如果应用程序处于 Activity 状态,则无法在 channel 上发布通知

linux - 同一个文件的两个文件描述符

android - 如何将内容 Uri 转换为文件