2015-03-15 11 views
6

Chcę móc przenosić bloki z mojego pliku zamiast pełnego pliku z mojej aplikacji, aby móc go bardziej efektywnie przenosić. Jaki jest najlepszy sposób na zrobienie tego?Jak mogę podzielić mój plik na bloki danych i przenieść te bloki z mojej aplikacji na Androida?

Aktualizacja

Oto przykład tego, gdzie będę potrzebował tego podejścia: Say mam pliku 4GB, które staram się przekazać. Jeśli sieć się nie powiedzie, mój plik zostanie zatrzymany i będę musiał zacząć od zera. Zamiast tego, jeśli śledzę bloki, które już przesłałem, mogę kontynuować od bloków, które jeszcze nie zostały przeniesione. Jest to szczególnie ważne w przypadku niestabilnych połączeń sieciowych.

+0

Po prostu z ciekawości - jakie jest twoje założenie, że możesz pokonać wydajność I/O systemu operacyjnego? Jakie medium przekazujesz? – runDOSrun

+0

Myślę, że ma na myśli przeniesienie tylko niektórych "bloków" swojego pliku w określonym czasie, _nie_ cały plik naraz "w blokach". Mimo to, jest to dość szerokie pytanie i nie można odpowiedzieć na to pytanie bez większej ilości szczegółów na temat faktycznego użycia. Na początek możesz nam pokazać, co teraz robisz. –

+0

Moją intencją tego podejścia jest to, że mam plik 4GB, który próbuję przesłać. Jeśli sieć się nie powiedzie, mój plik zostanie zatrzymany i będę musiał zacząć od zera. Zamiast tego, jeśli śledzę bloki, które już przesłałem, mogę kontynuować od bloków, które jeszcze nie zostały przeniesione. Jest to szczególnie ważne w przypadku niestabilnych połączeń sieciowych. –

Odpowiedz

1

Wymyśliłem jedno podejście do tego. Co możesz zrobić, to podzielić plik na bloki, korzystając z podanego tu podejścia - How to break a file into pieces using Java? i przekonwertować każdy blok na łańcuch Base64, a następnie przesłać zakodowany ciąg. Serwer odpowiada numerem kawałka po jego otrzymaniu. Numer tego kawałka można następnie zapisać na urządzeniu lokalnie, a następny fragment można następnie wysłać na serwer. Po przeniesieniu wszystkich porcji dekodowanie Base64 może być wykonane po stronie serwera, a pliki mogą zostać scalone.

1

myślę, że jego zrozumienie jest, że transfery OS złożyć bardzo losowo i chce programowo kontrolować, co do transferu i ile przeniesienie

+0

Przepraszamy, ale musieliśmy skomentować, ale przesłaliśmy jako odpowiedź. – user4582135

+0

Zaktualizowałem opis, aby opisać scenariusz, w którym potrzebowałbym tego. –

+0

Również to, co powiedziałeś, może być również ważną sprawą. –

1

mogę wiedzieć, jaki rodzaj pliku masz. Pytam, ponieważ jeśli jest on inny niż plik tekstowy, to myślę, że potrzebujesz algorytmu meu i prawa lub algorytmu G711 lub G729.

+0

Może to być dowolny typ pliku - tekst, obraz, wideo itp. –

+0

Nie można dzielić różnych plików w ten sam sposób, ponieważ plik wideo zawiera trochę bitów nagłówka, podczas gdy obraz i tekst nie mają. – DJhon

+0

http://stackoverflow.com/questions/1507831/how-to-splita-a-wav-file-into-smaller-chunks-using-java – DJhon

Powiązane problemy