2010-08-05 14 views
0

Je fais un projet qui ressemble à gestionnaire de téléchargement. J'ai 1 de la fonction est-il permettre à l'utilisateur de mettre en pause le fichier et ils peuvent reprendre le téléchargement plus tard.J'ai google, mais malchanceux je stil haven résoudre le problème (peut-être que je suis nouveau dans android et stupide pour le résoudre).android - comment obtenir le flux de fichier? (gestionnaire de téléchargement)

la question est .. si l'un des fichiers était havre fini téléchargé pour internet, comment puis-je obtenir le flux actuel/taille du fichier? et comment puis-je continuer à écrire le fichier?

i ont vu un code en Java comme ci-dessous:

begin = downloaded; 
file = (FileConnection) Connector.open("\sdcard\abc.mp3"); 
OutputStream output = file.openOutputStream(begin); 
DataOutputStream dos = new DataOutputStream(output); 
if(read != -1) { 
dos.write(buffer, 0, read); 
dos.flush(); 
    downloaded += read; 
} 

Mais je comprends pas vraiment comment il fonctionne dans Android :( Votre réponse est très apprécié !!!

P/S:. Je suis désolé mon mauvais anglais, espérons que vous les gars à comprendre ce que je parle Merci

Regard

Wy. nix

Répondre

0

Vous pouvez consulter ma réponse à cette question here

Il parle de téléchargement partiel et reprendre des téléchargements. J'espère que ça aide

+0

Salut naikus, merci pour la réponse. la reprise de donwload a été faite. mais que diriez-vous si le fichier a été téléchargé en deux et l'application a été fermée? comment je continue d'écrire le fichier en commençant à partir de la moitié? parce que lorsque l'application redémarre toute l'activité suppose de redémarrer correctement? Est-ce que je ne devrais pas obtenir la taille de fichier/stream et ensuite utiliser "outputstream.write (buffer, uploadedStream, end);" ces méthodes? Je vous remercie. – WynixToo

+0

Vous pouvez nommer le fichier "en cours de téléchargement" en tant que "nom.part" et un fichier texte corrospondant nomfichier.url (pour stocker l'URL de téléchargement), par exemple. bigfile.tar.part. Lorsque votre application démarre, recherchez les fichiers ".part" dans votre répertoire de téléchargement. Pour reprendre un téléchargement, obtenir la longueur du fichier .part en "len", obtenir l'URL du fichier url, faire "range = len (octets) - 500 (bytes)", utiliser la "plage" dans l'en-tête http Ensuite, vous pouvez utiliser RandomAccessFile ("rw") pour rechercher (plage) et commencer à écrire. – naikus

+0

Enfin j'ai fait le téléchargement de reprise. Merci naikus !!! Tu m'aides beaucoup. – WynixToo

Questions connexes