2017-10-25 1 views
0

Jackson 라이브러리를 사용하여 java의 경로에서 CSV 파일을 읽는 방법. 그리고 파싱 사용 CsvSchema, ObjectReader, CsvMapper. 그런 다음 JSON 객체 USing Jackson 라이브러리로 변환합니다. 도와주세요.Jackson Library, JSON을 사용하여 java에서 CSV 파일을 읽는 방법

private void testCsvRead() throws Exception 
{ 
    String FILE_NAME = "G://Read folder/output.csv"; 
    System.out.println("read csv"); 

    ClassLoader classLoader = getClass().getClassLoader(); 

    //-------------*****I am getting error here*****------------/// 

    File file = new File(classLoader.getResource(FILE_NAME).getFile()); 

    <-------------**********------------/ 
    CsvSchema schema = CsvSchema.builder().addColumn("parentCategoryCode").addColumn("code").addColumn("name").addColumn("description").build(); 
    CsvMapper mapper = new CsvMapper(); 


    ObjectReader oReader = mapper.readerFor(OfferTemplateCategory.class).with(schema); 


    try (Reader reader = new FileReader(file)) { 
    MappingIterator mi = oReader.readValues(reader); 

     while (mi.hasNext()) 
     { 
     System.out.println(mi.next()); 
     } 

    } 
} 

내가

File file = new File(classLoader.getResource(FILE_NAME).getFile()); 

이 오류 ---> 여기

java.lang.NullPointerException 
at CSVtester.CsvTest.testCsvRead(CsvTest.java:39) 
at CSVtester.CsvTest.main(CsvTest.java:26) 
+0

그리고 어떤 오류가 있습니까? – StaxMan

+0

java.lang.NullPointerException이 CSVtester.CsvTest.testCsvRead (CsvTest.java:39)에서 \t CSVtester.CsvTest.main (CsvTest.java:26)에서 \t –

답변

1

가능성이 문제가 있습니다 (위 참조)이 줄에 오류가 발생하고 그 classLoader.getResource(FILE_NAME) 반환 null.

당신이 파일의 절대 경로를 사용하고, 당신은 단순히 코드를 단순화 할 수 있습니다 사용 : 파일이 File 객체에 exists()를 호출하여 존재하는 경우

File file = new File("G://Read folder/output.csv"); 

당신은 확인할 수 있습니다.

여기 Classloader#getResource에 대한 API, 그리고 그것은 귀하의 경우 null 이유의 그럴듯한 설명.

+0

직접로드가 작동하지만 같이 출력이 CSVtester.OfferTemplateCategory @ 파일이 제대로로드 (가능성 분석) 점점 의미 91161c7 [email protected] [email protected] –

+1

@shoaibshaikh,하지만 당신이 인쇄하는 것은 내가 오버라이드 (override)하지 않는 상상 OfferTemplateCategory''의 반복 인스턴스이다 'Object # toString', 즉 [type @ hexadecimal]'디폴트 표현. 해당 속성 중 일부를 인쇄하거나 코드를 디버깅하여 추출 할 내용을 확인하십시오. – Mena

+0

인쇄 속성을 시도했습니다. 헤더가있는 행을 인쇄하려고합니다. –

관련 문제