2012-03-18 1 views
0

정적 csv 파일이 있습니다. 내 응용 프로그램에서 csv 파일의 데이터에 액세스 할 수 있도록 csv 파일의 모든 데이터를 데이터베이스로 변환하고 싶습니다. 나는 이것을 많이 연구했다. 그러나 아직도 나는 내 원인을 위해 뭔가를 찾을 수 없었습니다. 누군가가 이걸 도와 줄 수 있습니까? 고맙습니다.어떻게 csv 파일에서 데이터를 읽고 sqlite의 데이터베이스 파일에 저장할 수 있습니까?

답변

0

마침내 나는 csv 파일을 sqlite firefox 확장과 같은 도구를 사용하여 sqlite 데이터베이스 파일로 변환 할 수 있다고 생각했습니다. 그러면 변환 된 파일을 응용 프로그램에서 사용할 수 있습니다. 모든

1

자동으로 CSV 파일을 가져 와서 데이터베이스를 채우려는 내용을 모르겠습니다. 적어도 파일의 각 값을 직접 DB 행에 매핑해야합니다. 당신은 CSV 파일을 처리하기 위해 (라이브러리 나 다른 방법을 사용하여) 자신의 코드를 작성해야하고, 각 CSV "행"을 sqlite에 삽입하는 코드를 작성해야합니다.

형식을 제어하는 ​​CSV 파일을 처리하는 것은 매우 간단합니다. 당신은 FileRead와 String.split()을 사용할 수 있습니다. 다음, 다시 CSV 행 맵에 그 값 N을 가정하는 것은에서부터 컬럼 N DB에, 당신은이 예에서,

private static final List<String> COLUMNS = new ArrayList<String>() { 
    add("NAME"); add("ADDRESS"); add("ZIPCODE"); ...; 
} 

SQLiteDatabase db = ...; 
BufferedReader br = new BufferedRead(new FileReader("foo.csv")); 
String line; 
while ((line = br.readLine()) != null) { 
    Iterator cols = COLUMNS.iterator(); 
    String[] vals = line.split("\\s*,"); 
    ContentValues cv = new ContentValues(); 
    for (String v: vals) { 
    cv.put(cols.next(), v); 
    } 
    db.insert(..., cv); 
} 

을 수행 할 수 있습니다, 당신은 COLUMNS에 정의 된 컬럼의 순서가와 정확히 일치하는지 확인해야합니다 각 CSV 행의 값 순서

-1

먼저 당신이 그물이있는 DataGridView에 CSV 파일을로드하고 SQLite는 데이터베이스에 모든 데이터를 저장 사용하는 경우가 ...

프로그램 대해 이야기하지 않았다 프로그램에서 CSV 파일을 가져
관련 문제