Android를 사용하는 경우 빌드 된 SQLiteDatabase 및 SQLiteOpenHelper를 활용할 수 있습니다. 모두 정보는 here입니다.
모든 것을 파싱 한 후 File을 사용하여 원하는 방식으로 CSV로 내보낼 수 있습니다.
편집 : 기본적으로 수행해야 할 작업은 바이트를 읽음으로써 바이트를 구문 분석하여 내용에 액세스하는 것입니다. 경우에 따라 바이트로만 변환 할 필요가 없기 때문에 문자열로 변환 할 필요조차 없습니다. (예 : 오프셋 : 44 길이 : 4 설명 : 스키마 형식 번호, 지원되는 스키마 형식은 1, 2, 3 및 4입니다.). HEX 편집기에서 값이 올바른지 항상 확인할 수 있습니다. 어떤 종류의 텍스트 편집기로도 sqlite 파일을 열어도 도움이됩니다.
처음부터 시작하겠습니다. 먼저 파일을 읽습니다. 두 가지 접근 방식 :
- a. 전체 파일을 읽고
- b 후에 파싱합니다. b.
두 가지 접근법은 다음과 같은 코드의 대부분을 공유하는 것를 읽고 (더 큰 파일을 특별히 권장) 블록 전체 파일을 구문 분석 :
File file = new File("YOUR FILE ROUTE");
int len = 1024 * 512; //512KB
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e1) {
fis = null;
e1.printStackTrace();
}
byte[] b = new byte[len];
int bread;
try {
while((bread = fis.read(b, 0, len))!=-1)
{
if(parseBlock(b, bread)==1)
return;
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
의 차이는 부분 블록을 받고이를 해석 사이 것
(나는 당신을 위해 일하는 것 같아요) 그리고 모든 걸 얻는 것은 그냥 넣는 것입니다 :
fis.read(b, 0, fis.available);
while 루프 대신에.
궁극적으로 사용자의 접근 방식이 옳다. 바로 이것이 바이트를 String으로 가져 오는 방법이다. (새로운 문자열 (b)). 또한 첫 번째 문자는 이상한 기호를 나타내는 경향이 있습니다. SQL의 파일 형식을 살펴보면 일부 메타 데이터를 저장하기위한 예약 된 바이트입니다. 텍스트 편집기로 sqlite 파일을 열고 거기에 보이는 내용이 코드에서 나오는 것과 일치하는지 확인하십시오.
호세. 나는 좀 더 구체적이어야한다고 생각한다. 방금 sqback 파일이 안드로이드 장치에서 PC로 업로드되고 파싱이 서버 측에서 일어날 필요가 있다는 사실을 포함하도록 질문을 업데이트했습니다. –
그런 다음 바이트 읽기 시작해야합니다. 참조로 사용하십시오 (http://www.sqlite.org/fileformat.html) FileInputStream을 사용하여 파일을 읽는 것이 좋습니다. 읽는 바이트 블록을 2의 거듭 제곱의 배수로 설정하는 것은 흥미 롭습니다 (파일이이 크기에 도달 할 경우 1024Kb 또는 512Kb 정도가 가장 적합한 옵션이 될 수 있습니다). 경험이 전혀 없다면 몇 가지 예제 코드를 줄 수 있습니다. –
다시 한번 고마워요, 호세. 정말 고맙습니다. Im 그것을 정독 후에 읽는 시도하고 이것을 시도하고 잘 만하면 모두는 매끄럽게 갈 것이다. 더 많은 질문이 있으면이 스레드를 치게 될 것입니다. '임씨, 그리고 이미 굉장한 모습을 보이고 있습니다. –