我正在开发一个可以在多个并行段中下载文件的Android应用程序。我分开了,现在我想和他们一起加入。
为了更清楚,我将通过一个简单的例子向您展示。假设我下载了4个段中的100kb文件。第一段为0kb至25kb,第二段为25kb至50kb,第三段为50kb至75kb,最后一段为75kb至100kb。 Filetype可以是mp3,avi等。
现在我需要加入它们,以便这些段(文件部分)成为单个文件。我希望你能帮助我。谢谢你的时间!
编辑:例如,它更像是分段的avi(xxx.avi.001,xxx.avi.002,xxx.avi.003)文件,我们有时会下载到我们的PC并使用HJSplit加入文件到一个文件。
答案 0 :(得分: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();
答案 1 :(得分:1)
尝试 RandomAccessFile 。它具有强大而灵活的功能,因此您可以在准确的字节位置读取或写入文件。