csv auslesen, mittels List

I

Iago

Mitglied
Hallo,

ich versuche gerade eine csv-Datei auzulesen mittels einer List. So wie ich das hier mache, werden die Zeilen bis auf die Letzte
überschrieben. Gibt es eine andere Möglichkeit, sodass alle Werte ausgelesen werden? Vielen Dank

Java:
package fileprocessors;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


public class TestFileReader {

    public static void main(String[] args) throws Exception {
        
        
        String filePath = "table.csv";   
        List<String> values = null;
        
        List<String> lines = new ArrayList<String>();
        
        try(BufferedReader br = new BufferedReader(new FileReader(filePath))){           
            
            br.readLine();
            String line = null;
            
     while((line = br.readLine()) != null) {                   
                lines.add(line);               
            
        
        for(String ln : lines) {
            
            
            String [] header = ln.split(",");
            values = new ArrayList<String>();
            
            values = Arrays.asList(header);
        
        }
        
            }   
        
     for(String val : values) {
            
            System.out.println(val);
        }
        }
    }
}
 
H

httpdigest

Top Contributor
Java:
import java.io.*;
import java.util.*;
public class TestFileReader {
  public static void main(String[] args) throws Exception {
    String filePath = "table.csv";
    List<List<String>> lines = new ArrayList<>();
    try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
      br.readLine();
      String line = null;
      while ((line = br.readLine()) != null) {
        lines.add(Arrays.asList(line.split(",")));
      }
    }
    for (List<String> line : lines) {
      System.out.println(line);
    }
  }
}
 
I

Iago

Mitglied
Hi, ja, die Sache ist, dass ich gerne die einzelnen Werte haben möchte, da ich Summe, Mittelwert usw. ausrechen möchte. Macht es Sinn die Werte in ein Array zu packen, bevor ich mit den Collections komm. (also erst am Schluss die Werte in einer ArrayList zu speichern)? Merci!
 
H

httpdigest

Top Contributor
Ich verstehe deine Frage nicht ganz. Du hast doch mit dem Code alle Werte für alle Zeilen in der Liste und kannst diese Zeilen und Werte pro Zeile nach Belieben iterieren.
Macht es Sinn die Werte in ein Array zu packen, bevor ich mit den Collections komm
Häh?
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Was durchaus Sinn macht, ist einen vernünftigen CSV-Parser zu verwenden, statt da selber mit Split zu arbeiten :)
 
I

Iago

Mitglied
Ich verstehe deine Frage nicht ganz. Du hast doch mit dem Code alle Werte für alle Zeilen in der Liste und kannst diese Zeilen und Werte pro Zeile nach Belieben iterieren.

Die Frage ist eben wie. Wenn ich den BufferedReader verwende habe ich ja erst einmal Zeilen und keine einzelnen Werte. Wenn ich die einzelnen Zeilen in einer ArrayList speichere kann ich z.B kein split() verwenden um die einzelnen Werte der Zeile zu trennen.
 
H

httpdigest

Top Contributor
Also nochmal: Der Code, den ich dir geschrieben habe, liest bereits die einzelnen Werte jeder einzelnen Zeile in eine List<List<String>> ein...
Die List<List<String>> ist die Liste aller Zeilen. Und jedes Element dieser Liste (vom Typ List<String>) sind die einzelnen Werte innerhalb der jeweiligen Zeile.
 
Zuletzt bearbeitet:
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Würde ich nicht uneingeschränkt sagen. Für eine simple CSV-Datei, die z. B. nur Zahlen enthält, werf ich keinen Parser an.
Sobald irgendein zweites Programm/eine zweite Person dran beteiligt ist, würd zumindest ich mich nie drauf verlassen, dass 'n Split noch funktioniert.
 
I

Iago

Mitglied
Also nochmal: Der Code, den ich dir geschrieben habe, liest bereits die einzelnen Werte jeder einzelnen Zeile in eine List<String<String>> ein...
Die List<String<String>> ist die Liste aller Zeilen. Und jedes Element dieser Liste (vom Typ List<String>) sind die einzelnen Werte innerhalb der jeweiligen Zeile.

Achso, d.h. ich müsste jetzt ganz easy auf sagen wir die Werte der ersten Spalte, also 1,7,13.. usw zugreifen können.
 
H

httpdigest

Top Contributor
Ich habe zwar keine Ahnung, was du mit 1,7,13.. meinst, aber die jeweils erste Spalte jeder Zeile auszugeben, würde hiermit gehen (vorausgesetzt obiger Code mit List<List<String>> lines):
Java:
// Die erste Spalte jeder Zeile ausgeben:
for (List<String> line : lines) {
  System.out.println(line.get(0));
}
 
I

Iago

Mitglied
Ich habe zwar keine Ahnung, was du mit 1,7,13.. meinst, aber die jeweils erste Spalte jeder Zeile auszugeben, würde hiermit gehen (vorausgesetzt obiger Code mit List<List<String>> lines):
Java:
// Die erste Spalte jeder Zeile ausgeben:
for (List<String> line : lines) {
  System.out.println(line.get(0));
}

Ich versteh den Code mit"List<List<String>> lines = new ArrayList<>();" noch nicht ganz, versuche aber das zu verinnerlichen. Dank estmal!
 
H

httpdigest

Top Contributor
Naja, eine Liste hat ja einfach nur einen Elementtyp - das was in der Liste gespeichert wird.
Wenn du zum Beispiel Strings in einer Liste speicherst, ist der Elementtyp = String, und somit der generische Typ der Liste = List<String>. Wenn du nun aber wiederum Listen in einer Liste speicherst, dann hast du ja List<List>. Und wenn diese inneren Listen eben ihrerseits Strings speichern, dann hat die Gesamtliste den Typ List<List<String>>, also "List of List of String".
 
I

Iago

Mitglied
Ok, dass heisst dann, dass split() hier die einzelen Werte trennt und nicht nur die Zeilen, richtig?

Code:
lines.add(Arrays.asList(line.split(",")));
 
mihe7

mihe7

Top Contributor
Richtig. BufferedReader#readLine() liest eine Zeile (String) ein, während String#split(",") eine Zeichenkette an den Kommas aufteilt und die Teile in Form eines String-Arrays als Ergebnis liefert.

Bevor Du fragst: wenn die Zeichenketten Zahlen darstellen, mit denen Du rechnen willst, musst Du sie in Zahlen umwandeln (Double.parseDouble, Integer.parseInt usw. sind Deine Freunde).
 
I

Iago

Mitglied
Richtig. BufferedReader#readLine() liest eine Zeile (String) ein, während String#split(",") eine Zeichenkette an den Kommas aufteilt und die Teile in Form eines String-Arrays als Ergebnis liefert.

...wobei das Array dann mit Array.asList wiederum in die Liste gepackt wird.

Ich versuchs mal so. Ich habe doch diese innere List von List<List<String>> lines (die innere Liste!!), welcher Prozess befüllt diese Liste mit den einzelnen Werten.? Müsste da nicht eine zweite Schleifen (for oder while) her?

Oder kann man das so sagen, Array.asList packt alles in die Liste, auch das Array im Array, also in die Liste in der Liste?

Merci vielmals!
 
Zuletzt bearbeitet:
mihe7

mihe7

Top Contributor
Die Frage hast Du doch schon selbst beantwortet: Arrays.asList - liefert das String-Array als Liste.

Beispiel:
Java:
List<List<String>> alleZeilen = new ArrayList<>();
String s = "1,2,3";  // eine eingelesene Zeile
String[] values = s.split(","); // liefert das Array {"1", "2", "3"}
List<String> valuesAsList = Arrays.asList(values); // liefert eine List mit 3 "Zeilen": "1", "2" und "3"
alleZeilen.add(valuesAsList); // fügt valuesAsList der Liste alleZeilen hinzu

Benötigst Du jetzt die Werte der ersten Zeile:
Java:
List<String> zeile = alleZeilen.get(0); // Werte der ersten Zeile
String ersteSpalteDerErstenZeile = zeile.get(0);
 
I

Iago

Mitglied
Ich verstehe deine Frage nicht ganz. Du hast doch mit dem Code alle Werte für alle Zeilen in der Liste und kannst diese Zeilen und Werte pro Zeile nach Belieben iterieren.

Häh?
Häh, ja genau, denn die Schwierigkeit besteht darin zu verstehen, wie Java das Array/ die Arrays in eine Liste umwandelt, der Rest ist easy
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Dynamische (AJAX) Inhalte einer Webseite mittels Java auslesen Java Basics - Anfänger-Themen 2
I (fremde) IP mittels Applet auslesen Java Basics - Anfänger-Themen 6
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
UnknownInnocent x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
dragonfight86 Erste Schritte OpenDocument auslesen Java Basics - Anfänger-Themen 13
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
Chrizzey45 Calc-Dokument in Java auslesen? Java Basics - Anfänger-Themen 2
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
Y Bildschirmauflösung auslesen Java Basics - Anfänger-Themen 4
S for schleife auslesen Java Basics - Anfänger-Themen 4
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
Voreck Array aus txt datei auslesen Java Basics - Anfänger-Themen 2
N JFreeChart --> TimeSeries auslesen Java Basics - Anfänger-Themen 9
OlafHD Datei Auslesen Java Basics - Anfänger-Themen 6
M Metadaten OpenOffice mit Java auslesen Java Basics - Anfänger-Themen 9
P JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen Java Basics - Anfänger-Themen 4
J OpenOffice Dokumentenvariable mit Java auslesen Java Basics - Anfänger-Themen 1
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6
J Datei auslesen klappt nicht Java Basics - Anfänger-Themen 4
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
Viktim Website auslesen Java Basics - Anfänger-Themen 8
T Auslesen mehrerer jComboBox (-en) Java Basics - Anfänger-Themen 4
A letzen 2 Zahlen eines int auslesen Java Basics - Anfänger-Themen 3
Z Html Element aus der Webseite auslesen Java Basics - Anfänger-Themen 1
3 Zufalls-Zahlen aus ArrayList generieren & auslesen Java Basics - Anfänger-Themen 6
R JTable Auslesen Java Basics - Anfänger-Themen 1
N Integers aus Textdatei auslesen und mehrere Arrays erstellen Java Basics - Anfänger-Themen 9
I Informationen aus XML Datei auslesen Java Basics - Anfänger-Themen 2
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
M Input/Output Alle Zeilen auslesen und in Variable speichern Java Basics - Anfänger-Themen 5
K PasswordField auslesen und in char speichern Java Basics - Anfänger-Themen 2
R Verschachtelte Arraylist und deren Größe auslesen Java Basics - Anfänger-Themen 7
L Variablen aus TXT Datei auslesen und vergleichen. Java Basics - Anfänger-Themen 5
I 1) Laufwerke auslesen 2) Verzeichnisse von Laufwerke auslesen Java Basics - Anfänger-Themen 2
C Verschachtelte Map auslesen Java Basics - Anfänger-Themen 4
S Objekte in ArrayList eintragen und auslesen Java Basics - Anfänger-Themen 7
M Datei-Namen aus .jar auslesen Java Basics - Anfänger-Themen 7
C Erste Schritte Random Wert auslesen und ausgeben Java Basics - Anfänger-Themen 2
L Java Text datei nur bis zu einem Punkt auslesen? Java Basics - Anfänger-Themen 3
J Integer-Werte in Array ein- bzw. auslesen Java Basics - Anfänger-Themen 7
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
H Passwortgeschützte Homepage auslesen Java Basics - Anfänger-Themen 6
E Hashmap Wert auslesen Java Basics - Anfänger-Themen 2
M Array mit Objekten lässt sich nicht auslesen Java Basics - Anfänger-Themen 10
U Website Quelltext auslesen - Javaskripte im Hintergrund? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben