नमस्कार मित्रांनो, आज मी तुम्हाला दाखवतो जावा मध्ये CSV फाइल कशी वाचावी साध्या उदाहरणासह जॅक्सन API:. बर्‍याच काळापासून मला फक्त माहित होते की acks Exxon चा वापर JSON चे विश्लेषण करण्यासाठी केला जाऊ शकतो, परंतु मला नंतर समजले की याचा वापर जावा मध्ये CSV फायली पार्स करण्यासाठी किंवा वाचण्यासाठी देखील केला जाऊ शकतो. जॅक्सन डेटाफॉर्मेट सीएसव्ही लायब्ररी आपल्याला फक्त काही ओळींमध्ये सीएसव्ही फाइल वाचण्याची परवानगी देते, և हे खरोखर शक्तिशाली आहे – समृद्ध वैशिष्ट्यांसह. उदाहरणार्थ, तुम्ही शीर्षकासह किंवा त्याशिवाय CSV फाइल वाचू शकता. आपण मर्यादित CSV सारख्या टॅबसह मजकूर फाइल देखील वाचू शकता. हे अत्यंत सानुकूल करण्यायोग्य आहे, जे आपल्याला कोणत्याही डिलिमीटरसह मजकूर फाइल वाचण्यासाठी स्तंभ ब्रेकर सेट करण्याची परवानगी देते. आपण सीएसव्ही डेटा थेट जावा ऑब्जेक्टमध्ये रूपांतरित करण्यासाठी वापरू शकता, जसे आपण करतो जावा मध्ये JSON स्ट्रिंग वाचत आहे.

बराच काळ मी एक DIY माणसासारखा होतो, म्हणजेच, मला आवश्यक असलेल्या प्रत्येक गोष्टीची कोडिंग करायला आवडेल, म्हणून प्रत्येक जावा प्रकल्पात माझ्याकडे नेहमीच तो उपयुक्त उपयुक्त धडा असतो, परंतु ते वाचल्यानंतर सर्व काही बदलले. प्रभावी जावा.

हे पुस्तक उत्तम पद्धतींनी परिपूर्ण आहे – जावा कलेक्शन फ्रेमवर्कचे लेखक कर्नल ओशुआ ब्लॉच यांच्या उत्तम व्यावहारिक टिप्स, և java.lang पॅकेजचे अनेक मुख्य धडे. प्रभावी जावा मधील एका लेखात, त्यांनी सल्ला दिला की चाकाचा पुन्हा शोध घेण्याऐवजी तुम्ही नेहमी सामान्य कार्यासाठी लायब्ररीचा वापर करावा आणि त्यानंतर मी मागे वळून पाहिले नाही.

जावा मधील CSV फायली वाचण्यासाठी किंवा विश्लेषणासाठीही हेच आहे. जर तुम्ही माझे आधीचे उपाय बघितले तर ते रेडीमेड उपाय नव्हते. ते कसे वापरायचे ते मी तुम्हाला दाखवले CSV फाइल वाचण्यासाठी BufferedReader परंतु हे अनेक कोनीय प्रकरणांचे निराकरण करत नाही, जसे की परिवहन मूल्यांचे परतावा, कोटेशन चिन्हांद्वारे संरक्षित कोणतेही फील्ड, इत्यादी. हे कामगिरीसाठी देखील अनुकूल नव्हते.

जेव्हा तुम्ही अनुभवी և सिद्ध लायब्ररी वापरता, तेव्हा तुम्हाला डीफॉल्टनुसार हे सर्व फायदे मिळतात I मी जावा प्रोग्रामरना मूलभूत -उपयुक्त जावा लायब्ररींशी परिचित होण्याचे मुख्य कारण आहे. मी आजूबाजूला शेअर केले 20 सर्वात उपयुक्त जावा लायब्ररी पूर्वी, my मी माझ्या वाचकांना देखील सुचवण्यास प्रोत्साहित करतो, जर तुम्ही तो लेख अजून वाचला नसेल, तर तुम्ही तो आता वाचावा.

Acks exon वापरून जावा मध्ये स्तंभ शीर्षकासह CSV फाईल कशी पार्स करावी

असो, विषयाकडे परत. या लेखात, मी तुम्हाला जावा मधील जॅक्सन लायब्ररी वापरून CSV फाइल कशी वाचावी हे दाखवेन.

समजा आमच्याकडे खालील CSV फाइल आहे ज्यामध्ये शीर्षक, लेखक. किंमत आहे जावा प्रोग्रामरसाठी लोकप्रिय ऑनलाइन अभ्यासक्रम.

Title,Author,Price
REST With Spring,Eugen Paraschiv, 290
Learn Spring Security,Baeldung,290
Complete Java MasterClass,Udemy,200

खरं तर, मी नेहमी वापरत असलेल्या पुस्तकांच्या उदाहरणांनी कंटाळलो आहे, म्हणून यावेळी मी ऑनलाइन अभ्यासक्रम वापरले, परंतु हे खरोखर सर्वोत्तम अभ्यासक्रम आहेत, you जर तुम्हाला जावा मध्ये स्वारस्य असेल तर पूर्ण जावा मास्टर क्लास सुरू करण्यासाठी सर्वोत्तम अभ्यासक्रमांपैकी एक आहे, मोकळ्या मनाने त्यात सामील व्हा.

आता, आमच्या जावा प्रोग्राममध्ये या डेटाचे प्रतिनिधित्व करण्यासाठी, मी एक धडा तयार केला आहे: ऑनलाईन कोर्स, जे तळासारखे आहे.

class OnlineCourse{
  private String title;
  private String author;
  private int price; 
 
  ...
 
  public OnlineCourse(){
     // no argument constructor required by Jackson
  }
 
}

मी इतर कन्स्ट्रक्टर चुकलो, և समायोज्य वाचनीयता मिळवत, you जर तुम्ही Lombok लायब्ररी वापरता तर तुम्ही ते करू शकता. त्याचे फायदे आणि तोटे आहेत, परंतु हा आजचा आणखी एक विषय आहे.

फक्त लक्षात ठेवा की acks exon प्रतिबिंब वापरते, म्हणून a वितर्क न करता डीफॉल्ट आपल्या वर्गात आवश्यक.

ही CSV फाईल जावा मध्ये वाचण्यासाठी, ऑरेक्ट लिस्ट मध्ये ऑब्जेक्ट्स कॉपी करण्यासाठी किंवा फक्त कन्सोल म्हणून प्रिंट करण्यासाठी आम्ही पासवर्ड लिहू.

एक्सॉन व्ही द्वारे आपल्याला सीएसव्ही फाइल वाचण्याची आवश्यकता आहे.

CsvMapper csvMapper = new CsvMapper();
CsvSchema schema = CsvSchema.emptySchema().withHeader(); 
 
ObjectReader oReader = csvMapper.reader(OnlineCourse.class).with(schema);
try (Reader reader = new FileReader("file.txt")) {
    MappingIterator<OnlineCourse> mi = oReader.readValues(reader);
    while (mi.hasNext()) {
      System.out.println(current);
    }
}

CsvMapper: एक वर्ग आहे जो एकाच वेळी CSV वरून जावा ऑब्जेक्टवर डेटा मॅप करतो CsvSchema: CSV चे शीर्षक आहे की नाही हे स्कीमा परिभाषित करते. फाईल अस्तित्वात आहे का हे तुम्ही सूचित करू शकता का? स्वल्पविरामाने विभक्त किंवा एका इन्सर्टद्वारे मर्यादित, जे आपण पुढील लेखात पाहू.

हे पॅनेलमध्ये खालील प्रिंट करेल:

EBook [title=REST With Spring, author=Eugen Paraschiv, price=290]
EBook [title=Learn Spring Security, author=Baeldung, price=290]
EBook [title=Complete Java MasterClass, author=Udemy, price=200

याचा अर्थ असा की आमचा प्रोग्राम CSV फाइल यशस्वीरित्या वाचतो. आपण इच्छित असल्यास, आपण वस्तू जतन करू शकता a यादी किंवा: नकाशा: जसे आम्ही आमच्या नमुना कार्यक्रमात करतो. बीटीडब्ल्यू, जर आपण अशा संग्रहाच्या मूलभूत धड्यांशी परिचित नसल्यास, त्याकडे एक नजर टाका जावा मूलभूत. संग्रह: Pluralsight वर रिचर्ड वॉरबर्टनचा कोर्स.

Acks exon वापरून जावा मध्ये स्तंभ शीर्षकासह CSV फाईल कशी पार्स करावी

जावा मध्ये CSV फाइल वाचण्यासाठी Acks Exons ची उदाहरणे

आपण समायोजित करू शकता: जे एक्सॉन स्कीमाची नावे (प्रकाराशिवाय) मिळवण्यासाठी CSV दस्तऐवजाची पहिली ओळ वापरा. स्तंभांची योग्य व्यवस्था सुनिश्चित करण्यासाठी आकृती ऑब्जेक्ट आवश्यक आहे; योजनेची उदाहरणे अशीः अपरिवर्तित fully पूर्णपणे पुन्हा वापरता येण्याजोगे (उपलब्ध म्हणून) ऑब्जेक्ट रायटर: उदाहरणे):

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
 
import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.databind.ObjectReader;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
 
/*
* Java Program to iterate over JSONObject of json-simple
*/
public class JacksonTest {
 
public static void main(String args[]) throws FileNotFoundException, IOException { 
    CsvMapper csvMapper = new CsvMapper();
    CsvSchema schema = CsvSchema.emptySchema().withHeader(); 
 
    ObjectReader oReader = csvMapper.reader(OnlineCourse.class).with(schema);
    List<OnlineCourse> courses = new ArrayList<>();
 
     try (Reader reader = new FileReader("file.txt")) {
           MappingIterator<OnlineCourse> mi = oReader.readValues(reader);
           while (mi.hasNext()) {
                 OnlineCourse current = mi.next();
                 courses.add(current);
                 System.out.println(current);
      }
}
 
   System.out.println("number of courses into list: " + courses.size());
 
}
 
}
 
 
class OnlineCourse{
private String title;
private String author;
private int price; 
 
public OnlineCourse(){
    // no argument constructor required by Jackson
}
 
public OnlineCourse(String title, String author, int price) {
    this.title = title;
    this.author = author;
     this.price = price;
}
 
public String getTitle() {
    return title;
}
 
public String getAuthor() {
   return author;
}
 
public int getPrice() {
   return price;
}
 
 
public void setTitle(String title) {
   this.title = title;
}
 
public void setAuthor(String author) {
   this.author = author;
}
 
public void setPrice(int price) {
   this.price = price;
}
 
 
@Override
public String toString() {
     return "EBook [title=" + title + ", author=" + author + ", price="
                              + price + "]";
  } 
 
}
 
Output:
EBook [title=REST With Spring, author=Eugen Paraschiv, price=290]
EBook [title=Learn Spring Security, author=Baeldung, price=290]
EBook [title=Complete Java MasterClass, author=Udemy, price=200]
number of courses into list: 3

आपण पाहू शकता की आम्ही CSV फाइल यशस्वीरित्या जावा ऑब्जेक्ट्सच्या गुच्छात रूपांतरित केली आहे. प्रत्येक ओळ, जी CSV लाईन पेक्षा अधिक काही नाही, आता जावा ऑब्जेक्ट दर्शवते. जर तुम्हाला acks exon बद्दल अधिक जाणून घ्यायचे असेल, तर मी तुम्हाला एक नजर टाका JSON Java APIs և REST वेब सेवांसह उडेमी वर अभ्यासक्रम.

JSON with Java API և REST web services course udemy

सामान्य चुका:

या जगात काहीही सोपे नाही, you जर तुम्ही पहिल्यांदा काही केले तर तुम्ही नक्कीच मार्गात येईल – हे बरोबर आहे CSV फाइल विश्लेषण नाक एक्सॉन वापरणे.

“मुख्य” विषयाला अपवाद java.lang.VerifyError. शेवटच्या धड्यातून वारसा मिळवणे शक्य नाही
java.lang.ClassLoader.defineClass1 (मूळ पद्धत)
java.lang.ClassLoader.defineClass (ClassLoader.java:763) वर
java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)
java.net.URLClassLoader.defineClass (URLClassLoader.java:467) वर
java.net.URLClassLoader.access $ 100 (URLClassLoader.java:73)
java.net.URLClassLoader $ 1.run (URLClassLoader.java:368)
java.net.URLClassLoader $ 1.run (URLClassLoader.java:362)
java.security.AccessController.doPrivileged (मूळ पद्धत)
java.net.URLClassLoader.findClass (URLClassLoader.java:361) वर
java.lang.ClassLoader.loadClass (ClassLoader.java:424) वर
sun.misc.Launcher $ AppClassLoader.loadClass (ऑपरेटर: जावा: 331)
java.lang.ClassLoader.loadClass (ClassLoader.java:357) मध्ये
com.fasterxml.jackson.dataformat.csv.CsvMapper (CsvMapper.java:39)
JacksonTest.main (JacksonTest.java:25) येथे

कारण և उपाय:

या त्रुटीने मला थोडासा गोंधळात टाकले, परंतु मला चटकन लक्षात आले की याचा चुकीच्या पर्यायांशी काही संबंध आहे. Acks Exxon लायब्ररी स्वतः हे खरोखर होते, मला सवय होती jackson-dataformat-csv-2.9.jar: पण माझ्याकडे होते जॅक्सन-कोर -2.2.3.jar: माझ्या वर्गात. वापर केल्यानंतर: jackson-dataformat-csv-2.2.jar: त्रुटी आपोआप निघून जाते.

थोडक्यात, आपल्या acks च्या सर्व घटकांची समान किरकोळ आवृत्ती असल्याची खात्री करा. dataformat-csv 2.9.jar: आपण वापरणे आवश्यक आहे जॅक्सन-कोर: आणि जॅक्सन डेटाबेस: 2.9 पासून देखील.

बीटीडब्ल्यू, अशी साधने वापरणे चांगले मेवे किंवा: ग्रॅडल जे जॅक्सन JAR व्यक्तिचलितपणे डाउनलोड करण्याऐवजी आपले व्यसन व्यवस्थापित करेल.

आणखी एक चूक.
वेळ [Source: java.io.FileReader@3b81a1bc; line: 2, column: 16] (OnlineCourse द्वारे ऑनलाइन निर्देशिका[“Title”])
com.fasterxml.jackson.databind.MappingIterator.next (MappingIterator.java:122) वर
JacksonTest.main (JacksonTest.java:34) येथे
कारण, com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: अपरिचित फील्ड “शीर्षक” (धडा ऑनलाइन कोर्स), अदृश्य म्हणून चिन्हांकित नाही (3 ज्ञात विशेषता: “शीर्षक”, “किंमत”, “लेखक”])
वेळ [Source: java.io.FileReader@3b81a1bc; line: 2, column: 16] (OnlineCourse द्वारे ऑनलाइन निर्देशिका[“Title”])

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from (UnrecognizedPropertyException.java:79)
com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty (DeserializationContext.java:555)
com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty (StdDeserializer.java:708)
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty (BeanDeserializerBase.java:1160)
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject (BeanDeserializer.java:315)
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize (BeanDeserializer.java:121) वर
com.fasterxml.jackson.databind.MappingIterator.nextValue (MappingIterator.java:189) येथे
com.fasterxml.jackson.databind.MappingIterator.next (MappingIterator.java:120) येथे
… 1s 1:

कारण:
जेव्हा तुम्ही acks Exxon वापरून CSV डेटाचे विश्लेषण करता, तेव्हा असे दिसते: JSON चे विश्लेषण करत आहे याचा अर्थ असा की तुमची मालमत्ता तुमच्या वर्गाच्या शेतांशी तंतोतंत जुळली पाहिजे. हे कामासाठी संवेदनशील आहे. आमच्या बाबतीत वर्ग फील्ड म्हणतात “शीर्षक” आणि CSV फाईलचे शीर्षक म्हणतात: “शीर्षक” मग, क्रमवारी लावल्यानंतर, ही त्रुटी नाहीशी झाली आहे.

एवढे Jackson DataFormat CSV API वापरून Java मध्ये CSV फाइल कशी वाचावी. आपण ते सहजपणे खूप सोपे करू शकता. Acks Exxon लायब्ररी powerful शक्तिशाली आहे, և वैशिष्ट्य-समृद्ध you आपल्याला कॉन्फिगर करण्याची परवानगी देते CSVSchema: बर्‍याच प्रकारे, ज्याचा अर्थ तुम्ही शीर्षक (पहिली ओळ), शीर्षकाशिवाय, मूल्यांमधील कोट्ससह, मूल्य ओळ ब्रेकसह CSV फायली वाचू शकता.

आपण या लायब्ररीचा वापर करून टॅबसह मर्यादित मजकूर फाइल देखील वाचू शकता. मी त्याची आणखी काही उदाहरणे शेअर करेन जॅक्सन डेटाफॉर्मेट CSV लायब्ररी पण त्याआधी तुम्हाला पाहिजे ते करा, पण आईला त्रास देऊ नका 🙂

इतर: JSON मॅन्युअल जावा विकासकांसाठी

  • जावामध्ये स्ट्रिंगला JSON ऑब्जेक्टमध्ये रूपांतरित करण्याचे 3 मार्ग. (शैक्षणिक)
  • 5 JSON लायब्ररी जावा JEE प्रोग्रामरला माहित असावे (यादी:)
  • जावा मध्ये REST API तयार करण्यासाठी स्प्रिंग का वापरावे? (लेख:)
  • Acks Exxon वापरून डेट फील्ड वापरून JSON कसे जावा मध्ये पार्स करावे? (शैक्षणिक:)
  • Gson द्वारे JSON अॅरेला जावा मधील स्ट्रिंग अॅरे मध्ये कसे रूपांतरित करावे? (शैक्षणिक:)
  • वसंत inतू मध्ये सखोल शिक्षणासाठी 6 अभ्यासक्रम (अभ्यासक्रम)
  • Eclipse मध्ये JSON केबलमधून कसे बाहेर पडावे (सल्ले)
  • जावा मध्ये JSON चे विश्लेषण करताना अज्ञात गुणधर्मांकडे दुर्लक्ष कसे करावे? (शैक्षणिक:)
  • JSON विश्लेषणासाठी acks exon लायब्ररी कशी डाउनलोड करावी? (शैक्षणिक:)
  • JSON अॅरेला जावा मध्ये स्ट्रिंग अॅरे मध्ये कसे रूपांतरित करावे? (शैक्षणिक:)
  • जॅक्सन स्ट्रीमिंग API वापरून मोठ्या JSON फाईलचे विश्लेषण कसे करावे? (उदाहरण:)
  • जावा मध्ये गूगल प्रोटोकॉल बफर (प्रोटोबफ) कसे वापरावे? (शैक्षणिक:)
  • शीर्ष 5 सखोल स्प्रिंग शू प्रशिक्षण अभ्यासक्रम (अभ्यासक्रम)
  • शीर्ष 10 RESTful वेब सेवा मुलाखत प्रश्न (येथे पहा)
  • REST मध्ये वेगवेगळ्या HTTP पद्धतींचा हेतू काय आहे? (इकडे बघा)
  • जावा मध्ये RESTFul वेब सेवा शिकण्यासाठी 5 अभ्यासक्रम. (अभ्यासक्रम)

हा लेख आतापर्यंत वाचल्याबद्दल धन्यवाद. तुम्हाला हे आवडल्यास जावा मध्ये CSV फाइलचे विश्लेषण करण्यासाठी Acks Exon ट्यूटोरियल मग कृपया आपले मित्र आणि सहकाऱ्यांसह शेअर करा. आपल्याकडे काही प्रश्न किंवा टिप्पण्या असल्यास, कृपया एक टीप सोडा.


पुनश्च – जर तुम्ही जावा मध्ये नवीन असाल – सुरू करण्यासाठी मोफत अभ्यासक्रम शोधत असाल, तर तुम्ही ही यादी देखील पाहू शकता नवशिक्यांसाठी मोफत जावा अभ्यासक्रम. ते कालबाह्य होण्यापूर्वी त्यांच्यात सामील व्हा.