2012-11-03 1 views
1

기능 개발을 시작하기 전에 질문하고 싶은 질문이 있으니 나중에 다시 시작하는 방법에 대해 자세히 알아보기 만하면됩니다.) 시도해 보았습니다. 검색하지만, 무엇을 검색해야할지 모르겠습니다. 내가 활동/이벤트 로그를 저장하는 응용 프로그램을 가지고 그 때문에, 나는 android의 외부 (이동식 저장소) 파일 연결 및 복사

다음은 현재의 상황입니다 ... 여기에 당신의 두뇌 조금을 선택하고 싶습니다. 단순화 된 예 : "사람이 100ml의 물을 채웠습니다."

이것은 하나의 테이블에 레코드로 저장됩니다.

이제 새 기능 요구 사항에 대해 : USB를 통해 외부 저장 장치를 타블렛에 연결합니다. 이 저장 장치에는 여러 개의 텍스트 파일이 있습니다. 각 파일에는 위에 설명 된 것과 유사하지만 다른 데이터가있는 활동/이벤트의 매개 변수가 들어 있습니다.

이러한 파일을 가져 와서 일부 내용을 새 레코드로 데이터베이스에 읽은 다음 파일의 링크를 DB에 저장하여 태블릿 어딘가에 저장하는 기능을 만들고 싶습니다. . 이론적으로 전체 텍스트 파일의 내용을 관련 1 : 1 테이블의 필드 나 필드에 저장하는 것이 좋겠지 만이 파일은 1MB만큼 클 수 있습니다 (1MB는 매우 드물지만 가능합니다.) 약 100KB).

그래서, 내 질문은 :

  • 이는 안드로이드 장치의 SD 카드/내부 메모리, USB를 통해 연결된 외부 저장 장치에서 파일을 복사 할 모든 수 있습니까? (이 저장 장치는 내 타블렛에서 파일 탐색기 응용 프로그램을 사용하여 액세스 할 수 있습니다.)
  • 만약 그렇다면 가장 좋은 방법은 무엇입니까?
  • 그렇지 않은 경우 내 대안은 무엇입니까?
  • 또한 파일을 복사하고 로컬로 저장할 수없는 경우에도 외부 저장소에서 해당 내용에 액세스 할 수 있습니까? 그렇다면 필자는 필요한 데이터 만 가져오고 원본 파일의 복사본은 저장하지 않습니다.

미리 답변 해 주셔서 감사합니다.

답변

0

아무도 기회가 필요하지 않습니까? :)

동일한 문제가있는 향후 독자의 경우 : USB 연결 장치에서 파일을 읽을 수 있습니다. 파일 시스템에서 직접 파일을 읽는 것은 예를 들어 메일의 첨부 파일로 읽는 것과 다릅니다. 그래도 다른 경로 이상은 아닙니다.)

레코드를 가로 질러 줄을 나누어 DB로 파일을 읽는 작업이 끝났습니다. 즉, 필드에 전체 파일 (또는 전체 줄)을 추가하지 않고 파일을 단일 레코드로 구문 분석하여 다양한 필드로 분할합니다.

내가 만난 두 가지가 도움이 될 것입니다. 파일을 읽는 것은 꽤 빠르지 만,이 행들을 하나씩 데이터베이스에 쓰는 실수를 저 지르지 마십시오. 모든 것을 트랜잭션에 추가하고 한 번에 커밋하는 것이 좋습니다. 다른 하나는 기본 입력 스트림 대신 읽기 버퍼를 사용하여 파일을 읽을 수 있습니다. 또한 대용량 파일의 읽기 속도도 빨라집니다.