Methoden Erklärung wie ich eine spezielle Methode richtig anwende

Paul279

Aktives Mitglied
Hallo Leute,

Ich habe mir einen CSV Reader gebastelt mit der Bibliothek "JCSV"
Link zur Homepage
Es funktioniert tadellos, nur möchte ich das CSV Format umstellen auf "UK".
Laut Anleitung soll es ganz einfach sein, nur leider verstehe ich nicht, wie ich diesen Code anwenden muss.

Nun zu meinem funktionierenden Code:
Java:
       //CSV Schule importieren
        if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
            final File file = fc.getSelectedFile();
            Reader reader; 
            try {
                reader = new FileReader(file.getAbsolutePath());
                CSVReader<String[]> csvSchuleReader = CSVReaderBuilder.newDefaultReader(reader);
                try {

                    schule = csvSchuleReader.readAll();

                } catch (IOException ex) {
                    Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex);
                    this.jTextArea_meisterschaftStarten_Error.setText(this.jTextArea_meisterschaftStarten_Error.getText().toString()+"Beim Lesen der CSV Schule ist ein Fehler aufgetreten!\n");
                    this.jLabel_versteckt_CSV_Ueberpruefung.setText("0");
                }
            } catch (FileNotFoundException ex) {
                Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex);
                this.jTextArea_meisterschaftStarten_Error.setText(this.jTextArea_meisterschaftStarten_Error.getText().toString()+"Beim Lesen der CSV Schule ist ein Fehler aufgetreten!\n");
                this.jLabel_versteckt_CSV_Ueberpruefung.setText("0");
            }
        
        }

Ich lade aber immer CSV mit dem EXCEL Format hinein. (Funktioniert)

Es gibt zwar auf der Homepage eine Erklärung dass ich dem CSVReader einfach das:

new CSVReader.Builder<MyClass>.(csvFileReader).strategy(myStrategy)...;

hinzufügen muss, leider verstehe ich nicht wie.
Link zur Erklärung

Kann mir bitte jemand sagen wie ich es schreiben muss, damit der CSVReader UK CSV einlesen kann.

Danke schon mal
 

Marco13

Top Contributor
Ungetestet, sollte etwa so sein
Java:
reader = new FileReader(file.getAbsolutePath());
//CSVReader<String[]> csvSchuleReader = CSVReaderBuilder.newDefaultReader(reader);

CSVReader<String[]> csvSchuleReader = 
    new CSVReaderBuilder<String[]>(reader).strategy(CSVStrategy.UK_DEFAULT ).build();

EDIT: Kleine Änderung, scheint Laut APIDoc anders als auf der verlinkten Seite zu sein... ???:L
 

Paul279

Aktives Mitglied
Danke für deine Hilfe.

Also er schlägt mir vor das ganze auf CSVReaderBuilder zu casten oder den Datentyp auf CSVReaderBuilder zu ändern.

Beides funktioniert nicht, da er dann bei der Zeile
Java:
csvSchuleReader.readAll()
; einen Fehler schmeist.

Wenn man castet und das Programm läuft sagt er dass er es nicht casten kann.

Wenn man den Datentyp ändert sagt er dass "Uncompilable source code"
 
Zuletzt bearbeitet:
G

Gast2

Gast
EDIT: Kleine Änderung, scheint Laut APIDoc anders als auf der verlinkten Seite zu sein...
Ist korrigiert, das war noch ne ältere Version der API.

@TO:
Es sollte reichen wenn du folgende Zeile änderst.
Java:
CSVReader<String[]> csvSchuleReader = CSVReaderBuilder.newDefaultReader(reader);
=>
Java:
CSVReader<String[]> csvSchuleReader = new CSVReaderBuilder<String[]>(reader).strategy(CSVStrategy.UK_DEFAULT).build()
Mehr sollte nicht notwendig sein.
 

Paul279

Aktives Mitglied
Er meldet mir den Fehler:
"you have to specify a csv entry parser"

Ich möchte aber keinen Entry parser verwenden.
Ich habe diese Codezeilen(den entry parser versteh ich leider nicht):

Java:
       // Schule einlesen
       int listengroese = schule.size();
       for(int i=0; i<listengroese; i++)
       {
          String[] temp = schule.get(i);    //Aus der Liste Schule ein String Array heraus holen und auslesen
          sid = Integer.valueOf(temp[0]);
          land = temp[14];
          schulname = temp[3];
            try {
                statement.executeUpdate("INSERT INTO ASDU.SCHULE (SID, LAND, SCHULNAME) VALUES ("+sid+", '"+land+"', '"+schulname+"')");
            } catch (SQLException ex) {
                String test3 = "INSERT INTO ASDU.SCHULE (SID, LAND, SCHULNAME) VALUES ("+sid+", '"+land+"', '"+schulname+"')";
                System.out.println("FEHLER2");
                rueckgabe += "Bei der Zeile "+(i+1)+" ist ein Fehler aufgetreten(Schule)! NICHTs wurde importiert \n";
                break;
            }
       }

Es muss doch auch ohne auch gehen. Ich verwende doch sonst auch keinen und es funktioniert ?
 
G

Gast2

Gast
Ja das ist in der Tat etwas ungünstig.
Standardmäßig wird ein EntryParser verwendet der aus einem Datensatz ein String[] Array macht, der wird auch beim Aufruf von newDefaultReader verwendet.
Wenn du dir einen eigenen CSVReader bauen willst musst du (aktuell) diesen EntryParser noch übergeben, weil sonst eben der CSVReader nicht weiß wie er einen Datensatz verarbeiten soll.

Folgendes funktioniert:
Java:
new CSVReaderBuilder<String[]>(reader).strategy(CSVStrategy.UK_DEFAULT).entryParser(new DefaultCSVEntryParser()).build();

Das werd ich vielleicht mal anpassen, weil besonders schön ist das ja nicht... :rtfm:

EDIT:
Nein, geändert werden kann das doch nicht.
Man kann ja mit dem CSVReaderBuilder einen beliebigen CSVReader bauen, der DefaultCSVEntryParser kann aber nur String[] Arrays erstellen, um die Angabe kommt man also nicht drum rum.
 
Zuletzt bearbeitet von einem Moderator:

Paul279

Aktives Mitglied
Ich habe die Zeile ausprobiert und es funktioniert! Super danke sehr.

Aber was meinst du mit deinem Edit?

Also was meinst du mit:
Nein, geändert werden kann das doch nicht.
Was kann nicht geändert werden?
Meinst du die Codezeile? Die funktioniert ja tadellos?



Und das der DefaultReader nur Strings macht ist mir klar, das macht aber nichts.

//EDIT
woher habt ihr überhaupt diese Information? Habe selbst google durchforstet aber z.B. mit dem
.build() habe ich schon mal nirgends gelesen.

Okay API, sollte schlafen gehen danke
 
Zuletzt bearbeitet:
G

Gast2

Gast
Mit dem EDIT meinte ich die Änderung in der API, dass der DefaultCSVEntryParser als Standard verwendet wird, das geht beim erstellen eines individuellen Parsers aber nicht.
Ist für dein Problem aber nicht relevant, bei dir gehts ja jetzt ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Erklärung für eine Abfrage. Java Basics - Anfänger-Themen 9
D Eine Erklärung für eine 3D-Schleife bitte. :) Java Basics - Anfänger-Themen 4
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Erklärung BufferedReader und InputStreamReader Java Basics - Anfänger-Themen 4
S Erklärung zur Methode und array Java Basics - Anfänger-Themen 12
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
KogoroMori21 Erklärung zum Ternären Operator Java Basics - Anfänger-Themen 4
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
D Erklärung Java Basics - Anfänger-Themen 3
A Erklärung Programm zur Kreisberechnung Java Basics - Anfänger-Themen 43
S Bitweise Operatoren" >>>",">>","<<" erklärung Java Basics - Anfänger-Themen 5
D Erklärung eines Satzes Java Basics - Anfänger-Themen 0
M Erklärung: Int IndexOf (String s) Java Basics - Anfänger-Themen 3
C Methoden erklärung Java Basics - Anfänger-Themen 8
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
E Erste Schritte Gute Erklärung zu Objekten / Klassen / Methoden / Sichtbarkeiten auf Deutsch Java Basics - Anfänger-Themen 3
D Erklärung static boolean Java Basics - Anfänger-Themen 6
J Bitte um Erklärung Java Basics - Anfänger-Themen 4
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
O Über Map laufen Erklärung Java Basics - Anfänger-Themen 4
H Primzahltest : Erklärung zum Code Java Basics - Anfänger-Themen 2
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
B Benötige Erklärung für Lösungsansatz Java Basics - Anfänger-Themen 0
M web.xml Abschnitt Erklärung Java Basics - Anfänger-Themen 2
Z Fibonacci rekursiv meine Erklärung stimmt so? Java Basics - Anfänger-Themen 2
A erklärung von code Java Basics - Anfänger-Themen 4
A DezimalZuBinär - Erklärung der Vorgehensweise des Programms Java Basics - Anfänger-Themen 4
Z Fibonacci Array Erklärung Java Basics - Anfänger-Themen 5
K Erste Schritte Datenbank SQL erklärung Java Basics - Anfänger-Themen 15
H Methoden Bitte um Erklärung der askString-Methode Java Basics - Anfänger-Themen 15
G Erklärung .next Java Basics - Anfänger-Themen 4
D Erklärung Kalenderwoche Java Basics - Anfänger-Themen 14
T Erklärung zur Methode, Modulator Java Basics - Anfänger-Themen 3
V Objekte/Klassen erstellen - Erklärung anhand Beispiel Java Basics - Anfänger-Themen 4
S Threads Erklärung ReentrantLock Java Basics - Anfänger-Themen 6
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
R Interpretation/Erklärung main Java Basics - Anfänger-Themen 4
Helgon Polymorphie Generischer Methodenkopf - Erklärung Java Basics - Anfänger-Themen 3
W OOP Konstruktoren Erklärung Java Basics - Anfänger-Themen 14
E Quellcode Erklärung Java Basics - Anfänger-Themen 8
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
A Java Erklärung? Java Basics - Anfänger-Themen 4
D Beans Erklärung Java Basics - Anfänger-Themen 11
Q Klausur aufgabe Erklärung Java Basics - Anfänger-Themen 12
G Bitte um Erklärung Java Basics - Anfänger-Themen 9
O Erklärung für Pattern Java Basics - Anfänger-Themen 5
K gute erklärung Java Basics - Anfänger-Themen 5
Screen Erklärung von der Umwandlung von .class in .jar o. .exe ! Java Basics - Anfänger-Themen 5
Spin Taschenrechner - Erklärung Java Basics - Anfänger-Themen 9
S Code-Erklärung Java Basics - Anfänger-Themen 4
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
M enhanced for - erklärung Java Basics - Anfänger-Themen 3
K Erklärung der Syntax Java Basics - Anfänger-Themen 6
R Erklärung bitte Java Basics - Anfänger-Themen 3
G Erklärung for-Schleife bei Strings Java Basics - Anfänger-Themen 4
tobiasbeil Fehler array initialisierung. Nur erklärung bitte. Java Basics - Anfänger-Themen 2
W Programm erklärung Java Basics - Anfänger-Themen 7
F Threads - Erklärung und Beispielprogramm Java Basics - Anfänger-Themen 4
B [suche erklärung] - sicherheit beim login Java Basics - Anfänger-Themen 3
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
G Wie wartet man bis ein URL eine Antwort zurückgibt? Java Basics - Anfänger-Themen 5
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
M mit Maven eine ausführbare Jar bauen Java Basics - Anfänger-Themen 7
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
M Eine Funktion zuweisen Java Basics - Anfänger-Themen 3
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
S Eine Idee umsetzen ganz schnell!? Java Basics - Anfänger-Themen 68
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
jeff98 Wie kann man in Java eine Zeichenformation ausgeben? Java Basics - Anfänger-Themen 9
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
A Eclipse IDE - Wie bekomme ich eine ältere Version Java Basics - Anfänger-Themen 6
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
berserkerdq2 Warum muss man manchmal in der RUnmethode sleep in eine schleife tun? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben