Læsning af en CSV-fil i en matrix
1. Oversigt
Enkelt sagt indeholder en CSV (Comma Separated Values) fil organiseret information adskilt af en komma-afgrænser.
I denne vejledning ser vi på forskellige måder at læse en CSV-fil i en matrix.
2. BufferedReader i java.io
Først læser vi posterne linje for linje ved hjælp af readLine () i BufferedReader. Derefter deler vi linjen i tokens baseret på kommaafgrænsen.
Liste poster = ny ArrayList (); prøv (BufferedReader br = ny BufferedReader (ny FileReader ("book.csv"))) {String line; mens ((line = br.readLine ())! = null) {String [] værdier = line.split (COMMA_DELIMITER); recordss.add (Arrays.asList (værdier)); }}
Bemærk med denne fremgangsmåde, at mere sofistikerede CSV'er (f.eks. Citere eller inkludere kommaer som værdier) ikke bliver parset som beregnet.
3. Scanner i java.util
Dernæst skal vi bruge en java.util.Scanner for at køre gennem indholdet af filen og hente linjer serielt, en efter en:
Liste poster = ny ArrayList (); prøv (Scannerscanner = ny Scanner (ny fil ("book.csv"));) {mens (scanner.hasNextLine ()) {records.add (getRecordFromLine (scanner.nextLine ())); }}
Derefter analyserer vi linjerne og gemmer det i en matrix:
privat liste getRecordFromLine (strenglinje) {Listeværdier = ny ArrayList (); prøv (Scanner rowScanner = ny Scanner (linje)) {rowScanner.useDelimiter (COMMA_DELIMITER); mens (rowScanner.hasNext ()) {values.add (rowScanner.next ()); }} returner værdier; }
Som tidligere vil mere sofistikerede CSV'er ikke blive analyseret som beregnet med denne tilgang.
4. OpenCSV
Vi kan adressere mere komplekse CSV-filer med OpenCSV.
OpenCSV er et tredjepartsbibliotek, der giver en API til at arbejde med CSV-filer. Vi bruger readNext () metode i CSVReader at læse optegnelser i filen:
Liste poster = ny ArrayList(); prøv (CSVReader csvReader = ny CSVReader (ny FileReader ("bog.csv"));) {String [] værdier = null; mens ((værdier = csvReader.readNext ())! = null) {records.add (Arrays.asList (værdier)); }}
For at grave dybere og lære mere om OpenCSV - kan vi tjekke vores OpenCSV-tutorial.
5. Konklusion
I denne hurtige vejledning udforskede vi forskellige måder at læse CSV-fil på i en matrix.
Som altid er den fulde kildekode for eksemplerne tilgængelig på GitHub.