2012-07-06 4 views
6

मैं एक एंड्रॉइड एप्लिकेशन पर काम कर रहा हूं जो कई समांतर खंडों में फ़ाइलों को डाउनलोड कर सकता है। मेरे पास अलग से है, और अब मैं उन सभी में एक साथ शामिल होना चाहता हूं।एंड्रॉइड: एक फ़ाइल बनाने के लिए मल्टीपार्ट फ़ाइलों को एक साथ जोड़ना

अधिक स्पष्ट होने के लिए, मैं आपको इसे एक साधारण उदाहरण से दिखाऊंगा। आइए कहें कि मैंने 4 सेगमेंट में 100kb फ़ाइल डाउनलोड की है। पहला खंड 0kb से 25kb तक है, दूसरा 25kb से 50kb तक है, तीसरा 50kb - 75kb से है और अंतिम खंड 75kb-100kb से है। फ़ाइलटाइप mp3, avi और आदि हो सकता है

अब मुझे उनसे जुड़ने की आवश्यकता है ताकि वे सेगमेंट (फ़ाइल पार्ट्स) एक फ़ाइल बन जाए। मुझे उम्मीद है कि आप इसके साथ मेरी मदद कर सकते हैं। आपके समय के लिए धन्यवाद!

संपादित करें: उदाहरण के लिए यह सेगमेंट एवी (xxx.avi.001, xxx.avi.002, xxx.avi.003) फ़ाइलों की तरह है जो हम कभी-कभी हमारे पीसी में डाउनलोड करते हैं और HJSplit का उपयोग करके फ़ाइलों में शामिल होते हैं ।

+0

क्या यह एक सादा पाठ फ़ाइल है (या कुछ समान है)? – matt5784

+1

यह कुछ भी हो सकता है! अधिकतर mp3 फाइलें – don

+0

@ user1122359 कोई समाधान मिला? –

उत्तर

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 की कोशिश करो। इसमें शक्तिशाली और लचीले फ़ंक्शन हैं ताकि आप सटीक बाइट स्थिति पर फ़ाइल को पढ़ या लिख ​​सकें।

संबंधित मुद्दे