2014-02-10 3 views
0

제목으로, 로컬 데이터베이스에서 Java 쿼리를 CSV 파일로 내보내는 중, 필요한 모든 정보가 올바르게 인쇄되지만 내 열 헤더는 열에 인쇄됩니다 A (행 1-8) 및 열 (AH)을 따르지 않음. 간단히 말해서 1 열에 머리글 1-8이 인쇄되고 그 다음에 수천 행의 데이터가 올바른 순서로 나타납니다. Java에 꽤 새로운, 어리 석다면 미안 해요!데이터베이스 쿼리를 CSV 파일, PostgreSQL 및 Java로 내보내기

 PrintWriter out = new PrintWriter(new BufferedWriter(
       new FileWriter("TestingRawData.csv"))); 

     ResultSetMetaData rsmd = result.getMetaData(); 
     int columnCount = rsmd.getColumnCount(); 

     for (int i = 1; i < columnCount + 1; i++) { 
      String name = rsmd.getColumnName(i); 
      out.println(name); 
      // print the name 
     } 

     while (result.next()) { 
      out.println(String.format("%s,%s,%s,%s,%s,%s,%s,%s", 
        result.getString(1), result.getString(2), 
        result.getString(3), result.getString(4), 
        result.getString(5), result.getString(6), 
        result.getString(7), result.getString(8))); 

     } 
+0

각 데이터 필드는 큰 따옴표로 묶어야합니다. 따라서 데이터에서 쉼표로 인해 발생하는 문제를 방지 할 수 있습니다. –

+0

고맙습니다. 지금 바로 정렬 해 드리겠습니다. – Bugz

답변

0

외에도 이러한 OpenCSV 같은 CSV 라이브러리를 사용하여 수행되어야한다는 사실로부터, println 개행을 출력한다. 대신 print을 사용하십시오.

for (int i = 1; i < columnCount + 1; i++) { 
    String name = rsmd.getColumnName(i); 
    out.print(name); 
    if (i != columnCount + 1) { 
     out.print(","); 
    } 
} 
+0

답장 =) 덕분에, 이제 열 A 행 1에 내 8 개의 표 머리글을 차례로 인쇄합니다. – Bugz

+0

분리 기호를 직접 출력해야합니다. CSV 라이브러리를 사용하는 이유는 무엇입니까? soo 훨씬 더 :) – Reimeus

+0

고마워요! 이제는 모든 헤더가 표시됩니다. CSV 라이브러리를 살펴볼 것입니다. 어딘가에서 그 책을 읽었습니다. 그래서 그것을 바꿀 것입니다. 이제 왜 열 I-P에 데이터가 들어 있는지 알 수 있습니까? 한 행만 헤더로 표시됩니다 (공백으로 표시해야 함). 다시 고맙습니다. – Bugz

관련 문제