2017-10-25 16 views
0

ジャクソンライブラリを使用してjavaのパスからCSVファイルを読み取る方法。パースを使用してください。 CsvSchemaObjectReaderCsvMapperその後、それをJSONオブジェクトUSing Jacksonライブラリに変換します。助けてください。私は、この行にエラーを取得していますジャクソンライブラリ、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 file = new File("G://Read folder/output.csv"); 

あなたのファイルがFileオブジェクトにexists()を呼び出すことにより、存在する場合は、確認することができます。

はここClassloader#getResourceためAPIだし、それはあなたのケースでnullだ理由の可能性のある説明。

+0

直接ロードが動作している。しかし示す出力がある CSVtester.OfferTemplateCategory @あなたのファイルが正常にロードされ(そしておそらく解析さ)なっていることを意味91161c7 [email protected] [email protected] –

+1

@shoaibshaikhは、しかし、何を印刷していることは、私はオーバーライドしない想像OfferTemplateCategory' 'の反復インスタンスであります'Object#toString'、つまり' [type @ hexadecimal] 'のデフォルト表現です。それらのプロパティの一部を印刷するか、コードをデバッグして抽出するものを確認してください。 – Mena

+0

印刷プロパティを試してみました。ヘッダー付きの行を印刷します。 –

関連する問題