Свързване и копиране на външен (преносимо хранилище) файл в android

Имам отворен въпрос, който бих искал да задам, преди да започна разработването на функционалност, само за да науча повече по темата след това, просто за да започна всичко отначало ;) Опитах да търся, но не съм много сигурен какво да търся. Ето защо, бих искал да ви разбия малко мозъка тук...

Ето текущата ситуация: Имам приложение, което съхранява регистрационни файлове за активност/събития. В опростен пример: „Лице А напълни чаша със 100 ml вода“

Това се съхранява като запис в една таблица.

Сега, за изискванията на новата функционалност: Свързвам външно устройство за съхранение чрез USB към моя таблет. На това устройство за съхранение има няколко текстови файла. Всеки файл съдържа параметри на дейност/събитие, подобно на описаното по-горе, но с различни данни.

Бих искал да създам функция за импортиране на тези файлове, да прочета част от тяхното съдържание в базата данни като нови записи и след това да съхраня файла някъде на таблета с връзка към файла като поле в DB. В идеалния случай бих искал да съхранявам съдържанието на целия текстов файл в поле или поле в свързана таблица 1:1, но тези файлове могат да бъдат големи до 1 MB (1 MB би било много рядко, но възможно. Средното е около 100KB).

И така, въпросите ми са:

  • Възможно ли е изобщо да копирате файл от външно устройство за съхранение, свързано чрез USB, към SD картата/вътрешната памет на устройството с Android? (Мога да осъществя достъп до това устройство за съхранение с помощта на приложение за разглеждане на файлове на моя таблет)
  • Ако е така, какъв е най-добрият начин за това?
  • Ако не, какви са ми алтернативите?
  • Освен това, ако не е възможно да копирате и съхранявате локално файловете, все още ли е възможен достъп до тяхното съдържание във външното хранилище? В този случай просто ще импортирам данните, от които се нуждая, а не ще съхранявам копие на оригиналния файл.

Благодаря предварително, всички отговори са високо оценени!


person Wessel du Plooy    schedule 03.11.2012    source източник


Отговори (1)


Никой не иска да рискува? :)

За бъдещи читатели със същия проблем: Възможно е да се прочете файл от USB свързано устройство. Имайте предвид, че четенето на файла директно от файловата система е различно от четенето му като прикачен файл в имейл например. Но не много повече от различен път;)

В крайна сметка прочетох файла в DB, ​​разделяйки редовете в запис. С други думи, не добавяне на целия файл (или дори цял ред) в поле, а по-скоро анализиране на файла в един запис, разделен на различни полета.

Две неща, на които се натъкнах, които могат да ви помогнат. Четенето на файл е доста бързо, но не правете грешката, която направих, като записах тези редове в базата данни един по един. По-добре да ги добавите всички към транзакция и да се ангажирате наведнъж. Другият, можете да използвате буфер за четене, за да прочетете файла, вместо входния поток по подразбиране. Това също ускорява четенето на големи файлове.

person Wessel du Plooy    schedule 24.11.2012