2012-07-23 2 views
1

휴대 전화의 sd 카드에 저장된 txt 파일을 SQLite SQLite 데이터베이스에 저장해야하나요, 어떻게해야할지 모르겠지만 도와 주시면 친절하게도 몇 줄의 코드를 작성해 보았습니다.데이터베이스에 txt 파일 추가 SQLite (Android 용), 어떻게?

+0

어떤 목적 u는 그것을 필요합니까 :

byte[]File로 변환? 데이터가 테이블 형식입니까? – chaitanya

+0

txt는 순서가 아닌 (쉼표로 구분하지 않음 : 등) 표 형식의 데이터가 들어있는 파일입니다.이 파일을 txt SD 카드에서 제거하고 표의 행에 삽입하는 쉬운 방법이 있다면 이해할 수 있습니다! jpg 이미지와 같은 너무 많은 합병증없이! – user1547027

+0

이 정확한 지침서를 따르고 방해가되는 경우 http://www.vogella.com/articles/AndroidSQLite/article을 알려주십시오.html –

답변

1

Filebyte[]으로 변환 한 다음 sqlite에 BLOB 데이터로 추가하십시오. 아마도 공간 최적화를 위해 파일을 Base64 형식으로 변환해야합니다.

이와 같이 구현하는 단계가 여러 개 있으므로 전체 개요를 추가했습니다. 당신이 뭔가에 갇혀 있다면, 자세한 내용을 요청하십시오.

편집 : 핵심 사항에 대한 코드를 제공합니다.

InputStream is = new FileInputStream(file); // where file is the .txt you want to convert 
ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
byte[] b = new byte[1024]; 
while ((int bytesRead = is.read(b)) != -1) { 
    bos.write(b, 0, bytesRead); 
} 
byte[] bytes = bos.toByteArray(); 

변환 바이트 [] base64로 문자열 :

파일을 변환 []이 코드를 사용하여 바이트

String dataToSave = Base64.encodeToString(bytes, Base64.DEFAULT); 

또는

byte[] dataToSave = Base64.encode(bytes, Base64.DEFAULT); 

당신은에서가 있어야하지만 기본 64 인코딩을 지원하는 최소 버전 2.2.

첫 번째 구현을 선택한 경우 sqlite 테이블의 TEXT 필드로 충분할 수 있습니다. 그렇지 않으면 BLOB으로 테이블에 열을 만듭니다. 삽입하려는 ContentValues을 만들 때 values.put(KEY, dataToSave);을 추가하십시오.

얻는 데이터 :

가 반대 동작을 수행 한) SQLite는 데이터를 얻을, 2), 3) 파일로 변환 바이트 변환한다.

FileOutputStream out = new FileOutputStream(path); //file path as string 
out.write(data); //data is the byte[] 
out.flush(); 
out.close(); 
+0

당신의 접근 방식이 흥미 롭다고 생각합니다. 어떻게해야하는지 몇 줄의 코드를 작성할 수 있습니까? 고맙습니다! – user1547027

+0

나는 내 대답 – 10s

+0

아주 좋았어, 당신은 파일 바이트를 txt 파일로 변환하는 코드를 삽입하는 것처럼 친절하셨습니까? 다시 한 번 감사드립니다! – user1547027

0

텍스트 파일에 데이터 행이 포함되어있는 경우. 예를 들어

<ISBN>, <Title>, <Author>, <Price> 

sqLite에 테이블로 저장해야합니다. 왜? SQLIte는 실제로 파일 데이터베이스이기 때문에 일단 SQLite에 테이블로 저장하면 SQLite의 기능을 사용하여 다양한 방식으로 데이터를 쿼리 할 수 ​​있습니다. 행 제거 등을 추가하십시오.

여기에 나온 단계를 수행하여 걸리는 곳을 알려주십시오. http://www.vogella.com/articles/AndroidSQLite/article.html

텍스트의 값을 저장하는 쉬운 방법을 원할 경우 문자열로 읽고 SharePreferences를 사용하여 문자열을 저장해야합니다.

어쨌든 1 단계는 SD 카드에서 파일을 읽는 것입니다.

관련 문제