2012-07-06 64 views
6

我正在研究可以下載多個平行段文件的android應用程序。我有他們分開,現在我想一起加入他們。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將文件加入一個文件。

+0

它是一個純文本文件(或類似的東西)? – matt5784 2012-07-06 17:52:05

+1

它可以是任何東西!主要是mp3文件 – don 2012-07-06 19:28:30

+0

@ user1122359得到了什麼解決方案? – 2015-03-18 08:18:26

回答

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

嘗試RandomAccessFile。它具有強大而靈活的功能,因此您可以在精確的字節位置讀取或寫入文件。

相關問題