CSv.Datei einlesen und die werte in zweidemosional Int Array speichern

Abo

Mitglied
heyy,
ich soll ein csv Datei ( Excel nur eine Spalte in der steht 99 Matrikelnummer, Note unter einander ) ( Zum Beispiel 55588,40), in Java einlesen durch eine Methode und dann die Werte in Zweidimensional Int-Array speichern. dann die Ergebnisse für die Noten von 1 bis 5 sollen auch in Int-Array gespeichert werden .

Noch soll eine Methode verwendet, die die Auswertung vornimmt. Die Zuordnung Prozentpunkte zur Note sind zum Beispiel :
100 bis 88 Prozentpunkte sind die Note 1.
87 bis 73 Prozentpunkte sind die Note 2 usw.

jetzt meine Frage ich habe überall gegoogelt wie ich das ganze durch die bestimmte Methoden programmiere, bei jeder versuch kam ich dann nicht weiter, ich verzweifle schon seit gestern aber ich will nicht aufgeben, ich bin noch ziemlich neu aufm Feld also echte Anfänger und brauche Einsätze diesen Programm zu schreiben, könnte mir jemand helfen wie ich vorgehen soll, bzw. die Schritte die mein Programm benötigt. es wäre echt sehr Hilfreich!

Das hier ist nun die CSV. Datei einlesen Methode die auch nicht klappt

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Notenauswertung{

public static void main(String[] args) {
String csvFile = "/c://users/AWY/Desktop/Notenliste.csv";
String csvSplitBy = ","


entschuldige meine Schreibweise ich bin neu in der Foren
 
Zuletzt bearbeitet:

Times

Bekanntes Mitglied
Demnächst bitte Code-Tags für Code-Beispiele verwenden:

Java:
public class Testklasse {

    public static void main(String[] args){

        System.out.println("Hello World");

    }

}

Im Texteditor kannst du dazu auf das Symbol oben links (mit den spitzen Klammern) klicken!

Und nun.. wo ist dein Code?! (Der ist wohl abgeschnitten!) :)
 

mihe7

Top Contributor
Wenn ich es richtig sehe, willst Du eine Methode, die einen Dateinamen und einen Feldtrenner entgegennimmt und als Ergebnis ein zweidimensionales Array liefert. Das wäre dann etwas wie:
Java:
public static int[][] readGrades(Sring fileName, String fieldDelimiter) {
    // TODO
}

Du schreibst oben, dass 99 Zeilen enthalten sind. Wenn Du das so annehmen darfst, kannst Du natürlich gleich mal das Ergebnis vorbereiten:

Java:
public static int[][] readGrades(Sring filename, String fieldDelimiter) {
    int[][] grades = new int[99][2]; 
    // TODO
    return grades;
}

Jetzt kannst Du bei TODO folgendes tun:
  1. Die Datei öffnen (Hint: s. BufferedReader)
  2. In einer Schleife Zeile für Zeile aus dem Reader lesen (der BufferedReader kennt eine Methode readLine())
  3. Jede Zeile ist ein String, den Du mit Hile von fieldDelimiter aufteilen musst (Hint: s. String#split)
  4. Dann hast Du je Zeile ein zweidimensionales String-Array. Jetzt musst Du nur noch jeden Teil in einen int konvertieren (Hint: s. Integer.parseInt) und das Ergebnis im Array grades eintragen.
Das sollte genau genug sein. Ein bisschen Arbeit solltest Du Dir aber schon noch machen müssen :)

Ach, so: natürlich musst Du die Methode in main auch noch aufrufen...
 

Abo

Mitglied
Demnächst bitte Code-Tags für Code-Beispiele verwenden:

Java:
public class Testklasse {

    public static void main(String[] args){

        System.out.println("Hello World");

    }

}

Im Texteditor kannst du dazu auf das Symbol oben links (mit den spitzen Klammern) klicken!

Und nun.. wo ist dein Code?! (Der ist wohl abgeschnitten!) :)
der code wurde nicht ganz genommen sorry dafür /// Vielen Dank für den Hinweis, hier ist mein code bis dahin,


Java:
public class Notenauswertung2 {

    public static void main(String[] args) {
       
        String file = "C:\\Users\\Alex Wanly\\Desktop/Notenliste.csv";
        //found the CSV File with String File
          BufferedReader reader = null;                   //read the File with BufferedReader ( most effective and fast )
          String line = "";                  // to read each Line of the file
         
          try {
           reader = new BufferedReader(new FileReader(file));
           while((line = reader.readLine()) != null) {
           
            String[] Values= line.split(",");    // Split the values after the ","
       
            for(String index : Values) {
             System.out.printf("%-20s", index);   // make space between the tow values
            }
            System.out.println();
           }
          }
          catch(Exception e) {
           e.printStackTrace();            // if the file is not able to be found ( to display problems if found )
          }
          finally {
           try {
            reader.close();
           } catch (IOException e) {
            e.printStackTrace();
           }
          }
         }
        }
 
Zuletzt bearbeitet:

Abo

Mitglied
Wenn ich es richtig sehe, willst Du eine Methode, die einen Dateinamen und einen Feldtrenner entgegennimmt und als Ergebnis ein zweidimensionales Array liefert. Das wäre dann etwas wie:
Java:
public static int[][] readGrades(Sring fileName, String fieldDelimiter) {
    // TODO
}

Du schreibst oben, dass 99 Zeilen enthalten sind. Wenn Du das so annehmen darfst, kannst Du natürlich gleich mal das Ergebnis vorbereiten:

Java:
public static int[][] readGrades(Sring filename, String fieldDelimiter) {
    int[][] grades = new int[99][2];
    // TODO
    return grades;
}

Jetzt kannst Du bei TODO folgendes tun:
  1. Die Datei öffnen (Hint: s. BufferedReader)
  2. In einer Schleife Zeile für Zeile aus dem Reader lesen (der BufferedReader kennt eine Methode readLine())
  3. Jede Zeile ist ein String, den Du mit Hile von fieldDelimiter aufteilen musst (Hint: s. String#split)
  4. Dann hast Du je Zeile ein zweidimensionales String-Array. Jetzt musst Du nur noch jeden Teil in einen int konvertieren (Hint: s. Integer.parseInt) und das Ergebnis im Array grades eintragen.
Das sollte genau genug sein. Ein bisschen Arbeit solltest Du Dir aber schon noch machen müssen :)

Ach, so: natürlich musst Du die Methode in main auch noch aufrufen...
Vielen Dank für deine Hilfe,
ich kann jetzt den 4 Schritt nicht so richtig verstehen, ich meine ich kenn wie die Methode Integer.parseInt teilweise funktioniert, aber wo soll sie genau in meinem code Stehen, Soll ich ein Class erstellen und dann in meine Main importieren( wird das funktionieren ) ? ich muss ja noch eine Int Array für die Notan 1 bis 5 erstellen und dann die Auswertung printen lassen



Code:
public class Notenauswertung2 {

    public static void main(String[] args) {
       
        String file = "C:\\Users\\Alex Wanly\\Desktop/Notenliste.csv";
        //found the CSV File with String File
          BufferedReader reader = null;                   //read the File with BufferedReader ( most effective and fast )
          String line = "";                  // to read each Line of the file
         
          try {
           reader = new BufferedReader(new FileReader(file));
           while((line = reader.readLine()) != null) {
           
            String[] Values= line.split(",");    // Split the values after the ","
       
            for(String index : Values) {
             System.out.printf("%-20s", index);   // make space between the tow values
            }
            System.out.println();
           }
          }
          catch(Exception e) {
           e.printStackTrace();            // if the file is not able to be found ( to display problems if found )
          }
          finally {
           try {
            reader.close();
           } catch (IOException e) {
            e.printStackTrace();
           }
          }
         }
        }
 
Zuletzt bearbeitet:

mihe7

Top Contributor
@Abo, das sieht doch gar nicht mal so schlecht aus.

Vorab noch eine Anmerkung: verwende try-with-resources, dann wird die Ressource auch im Fehlerfall automatisch geschlossen und Du sparst Dir den ekligen finally-Block:

Java:
try(BufferedReader reader = new BufferedReader(new FileReader(file))) {
    // code
} catch (IOException ex) {
    ex.printStackTrace();
}

ich kann jetzt den 4 Schritt nicht so richtig verstehen, ich meine ich kenn wie die Methode Integer.parseInt teilweise funktioniert, aber wo soll sie genau in meinem code Stehen,
Bislang gibst Du in Deiner for-Schleife die String-Werte einer jeden Zeile auf der Konsole aus. Stattdessen sollst Du sie in einen int-Wert konvertieren (Integer.parseInt(row[i]), wenn i eine Zählvariable ist) und das Ergebnis in einem Array ablegen.
 

Abo

Mitglied
@mihe7
dankke jetzt sieht mein code etwa kürzer aus

ich bekomme eine Fehler Meldung , in meine CSV datei steht erstmal Matrikelnummer, Note und dann deren Werte
Exception in thread "main" java.lang.NumberFormatException: For input string: "Matrikelnummer"
wie kann ich eine Exeption für die erste linie erstellen ?
in dem code habe ich nur das geändert ist es richtig ?

Java:
 for(String index : Values) {
            int n = Integer.parseInt(index);
             System.out.printf("%-20s", n);
 

mihe7

Top Contributor
Wenn die erste Zeile Überschriften enthält, dann brauchst Du nur vor der Schleife einmal eine Zeile zu lesen (die wird dann weggeworfen, da Du sie ja nicht brauchst).

Was die Schleife betrifft: jetzt konvertierst Du schon mal jede Zelle(!) in einen Integer. Du musst den Wert n jetzt nur noch an die passende Stelle in einem zweidimensionalen Array abspeichern.

Du wirst Dich leichter tun, wenn Du statt der for-each-Schleife eine gewöhnliche for-Schleife verwendest, da Du dann gleich den Spaltenindex zur Verfügung hast:
Java:
for (int column = 0; column < row.length; column++) {
    int n = Integer.parseInt(row[column]);
    ...
}
 

Abo

Mitglied
ich fülle meine Array nicht richtig, ich weis nicht was falsch daran ist :/
ich hab column = 1 statt 0 damit die erste zeile nicht betrachtet
und dann halt wollte ich wie du sagtest den wert n in 2dimensionale n Array abspeichern ich weis nicht wie das genau gehen soll



Java:
            String [] Values = line.split(",");    // Split the values after the ","
        
            for (int column = 1; column < Values.length; column++) {
                int n = Integer.parseInt(Values[column]);
                 int [] []n  =  Values [Values.length];      
                
              System.out.printf("%-20s", n);   // make space between the tow values
            }
            System.out.println();
           }
          }
         catch (IOException ex) {
            ex.printStackTrace();
           }
          }
         }
 

mihe7

Top Contributor
ich hab column = 1 statt 0 damit die erste zeile nicht betrachtet
column heißt Spalte. Du ignorierst damit also die erste Spalte, nicht die erste Zeile.

und dann halt wollte ich wie du sagtest den wert n in 2dimensionale n Array abspeichern ich weis nicht wie das genau gehen soll
Du brauchst ein Zielarray. Schau Dir mal das zweite Codeschnipsel von Kommentar #3 an. Da wird am Anfang ein Array grades angelegt, das 99-Einträge, jeweils bestehend aus zwei int-Werten enthält.

Um einen int-Wert n an Position(row|column) im Array grades abzulegen, schreibst Du einfach:
Java:
grades[row][column] = n;

Die Variable row gibt es bei Dir noch nicht. Die musst Du also an einer sinnvollen Stelle erst noch deklarieren und mit 0 initialisieren und an einer ebenso sinnvollen Stelle hochzählen.

Weil ich es gerade sehe: Variablennamen schreibt man in Java in lowerCamelCase. Die Variable Values solltest Du nach Möglichkeit also in values umbenennen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Werte von Datei einlesen Java Basics - Anfänger-Themen 5
B Hex-Datei einlesen, einzlne Werte werden "verschluckt&q Java Basics - Anfänger-Themen 11
W Double Werte von eine txt Datei direkt einlesen Java Basics - Anfänger-Themen 4
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
P Datei einlesen und zurückgeben Java Basics - Anfänger-Themen 5
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
E Einteilung der Räume mit einlesen einer .txt datei Java Basics - Anfänger-Themen 16
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
L Input/Output XML Datei einlesen (JAXB?) Java Basics - Anfänger-Themen 10
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
I Datei einlesen Java Basics - Anfänger-Themen 11
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
C Erste Schritte Regex - Datei einlesen und splitten Java Basics - Anfänger-Themen 4
K Datei aus unbekannten Speicherorten einlesen Java Basics - Anfänger-Themen 1
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
N Datei Zeilenweise einlesen, Ausgabe mehrere Arrays Java Basics - Anfänger-Themen 7
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
P CSV Datei einlesen und damit ein Datenmodell befüllen Java Basics - Anfänger-Themen 2
N Datei einlesen und grafisch anzeigen Java Basics - Anfänger-Themen 31
P csv Datei einlesen und ausgeben Java Basics - Anfänger-Themen 5
J Text Datei einlesen Java Basics - Anfänger-Themen 6
N gerichteter Graph aus einer Datei einlesen Java Basics - Anfänger-Themen 21
E Datei einlesen und bestimmte Wörter ausgeben Java Basics - Anfänger-Themen 2
Z Erste Schritte Versuche ein Labyrinth in einem Terminal zu erstellen, aber kann die properties Datei nicht einlesen Java Basics - Anfänger-Themen 3
J Encoding Problem beim Einlesen einer txt Datei mit Umlauten Java Basics - Anfänger-Themen 3
V Excel Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 4
stylegangsta Input/Output Hat eclipse eine Macke oder mein Code Array Datei einlesen Java Basics - Anfänger-Themen 5
N Mehrdimensionales float Array aus .txt-Datei einlesen? Java Basics - Anfänger-Themen 17
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
J CSV Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
S Datei einlesen - Dateipfad unter Linux anpassen Java Basics - Anfänger-Themen 12
A Datei in Array einlesen Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
Ananaskirsche Input/Output Bestimmte Zeile aus Datei einlesen Java Basics - Anfänger-Themen 4
J .txt Datei "einlesen "und in String speichern ergibt immer NULL Java Basics - Anfänger-Themen 17
M CSV-File aus datei system einlesen Java Basics - Anfänger-Themen 3
B Datei in Java einlesen Java Basics - Anfänger-Themen 13
S Datei einlesen und ausgeben Java Basics - Anfänger-Themen 8
S Input/Output einlesen aus einer evtl. leeren Datei Java Basics - Anfänger-Themen 5
J Input/Output Datei - Zeilenumbruch einlesen Java Basics - Anfänger-Themen 10
H config Datei erstellen + einlesen Java Basics - Anfänger-Themen 15
F Datei einlesen ( Bytes ) Java Basics - Anfänger-Themen 12
T Klassen CSV datei einlesen und parsen Java Basics - Anfänger-Themen 4
U Datei einlesen Java Basics - Anfänger-Themen 9
S ANSI-Datei einlesen UND UTF-8-Datei schreiben Java Basics - Anfänger-Themen 3
M Datei einlesen mit generics? Java Basics - Anfänger-Themen 9
I Datei einlesen, Inhalt in MAP ablegen Java Basics - Anfänger-Themen 10
A Erste Schritte Datei einlesen und Buchstaben zählen Java Basics - Anfänger-Themen 13
D txt-Datei zeilenweise als String einlesen Java Basics - Anfänger-Themen 2
E JPane txt datei einlesen Java Basics - Anfänger-Themen 5
D RegExp .txt-Datei einlesen Java Basics - Anfänger-Themen 6
M Datei Einlesen Fortan-Style? Java Basics - Anfänger-Themen 3
A Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 5
S Datei einlesen Java Basics - Anfänger-Themen 21
D Datei einlesen Fehler Java Basics - Anfänger-Themen 17
A Beim txt Datei einlesen kommen zusätzliche Lehrzeichen dazu. Java Basics - Anfänger-Themen 5
H eine Datei schnellstmöglich einlesen Java Basics - Anfänger-Themen 12
0 Log4J Probleme beim einlesen der Log datei Java Basics - Anfänger-Themen 2
E Input/Output Linux datei in Windows zeilenweise einlesen Java Basics - Anfänger-Themen 4
S XML Datei einlesen und Elemente ausgeben Java Basics - Anfänger-Themen 4
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
S Datenströne - Text in eine Datei einlesen, umwandeln und in eine neue Datei schreiben Java Basics - Anfänger-Themen 6
E externe .txt Datei mit Scanner einlesen Java Basics - Anfänger-Themen 7
N Input/Output .txt-Datei einlesen, aufteilen und seperat abspeichern Java Basics - Anfänger-Themen 3
L Datei einlesen Java Basics - Anfänger-Themen 12
L Input/Output Datei in Java einlesen Java Basics - Anfänger-Themen 9
J Datei einlesen Java Basics - Anfänger-Themen 10
I .csv-Datei einlesen klappt aber kann nicht in String geschrieben werden!?!?! Java Basics - Anfänger-Themen 11
S Datei einlesen und Ergebnis wieder in Datei schreiben Java Basics - Anfänger-Themen 5
J Datei einlesen teile aus lines ändern und wieder rausschreiben. Java Basics - Anfänger-Themen 4
B Wertetabelle mit versch. Formaten aus txt-Datei einlesen Java Basics - Anfänger-Themen 2
H 200000 Zeilen aus Datei einlesen Java Basics - Anfänger-Themen 13
D CSV Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 23
J byteweise Einlesen einer Datei "Von.. bis.." Java Basics - Anfänger-Themen 3
J Einlesen/Speichern von Strings aus einer Datei Java Basics - Anfänger-Themen 15
Z CSV-Datei einlesen mit dem JFileChooser !!! Java Basics - Anfänger-Themen 5
H Einlesen einer CSV-Datei Java Basics - Anfänger-Themen 2
X einlesen aus Datei, Fehler Java Basics - Anfänger-Themen 9
S Einlesen einer Datei? Java Basics - Anfänger-Themen 9
L Datei einlesen und neu geändert ausgeben Java Basics - Anfänger-Themen 8
B Formel aus Datei einlesen und benutzen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben