Ich hab ne Frage undzwar hab ich folgende Problemstellung:
Ich habe eine Datei mit 6400 Zeilen á 3 Double-Werte.Diese kann ich aus der Datei lesen und ausgeben lassen.Jetzt möchte ich aber diese Werte in ein Array mit 3 Stellen abspeichern also eine Art Vektor für jede Zeile erstellen.Kann ich nicht mit einer Schleife 6400 Arrays erstellen lassen und mit einer weiteren Schleife ihren 3 Stellen die Werte zuweisen ?
Die Zahlen sollten lieber nicht als String gespeichert werden.
Mit primitiven Datentypen kann schneller gerechnet werden, außerdem spart man sich damit ein ständiges parsen und splitten der Strings. Am besten wäre wahrscheinlich die int[][] Lösung. Ein eigener Datentyp wäre auch eine Möglichkeit, würde aber wider Overhead erzeugen. Aber ich denke bei 6300 Objekten sollte es da nicht drauf ankommen.
Hmm irgendwas stimmt noch nicht ich bekomm immer nen Fehler ...
Java:
publicstaticvoidmain(String[] args)throwsIOException{//Versuche die Dateioperationentry{// Öffne Quelldatei um den Inhalt zu lesenScanner sc2 =newScanner(newFile("CI_PA-E_Train.dat"));//sc2.useLocale() - falls Probleme wegen punkt, kommafor(int i=0;i<=6400;i++){Vektor[i][0]=sc2.nextDouble();Vektor[i][1]=sc2.nextDouble();Vektor[i][2]=sc2.nextDouble();System.out.println(Vektor);}//Schließe die Datei
sc2.close();}catch(FileNotFoundException e){System.out.println("Fehler: Quelldatei existiert nicht");System.exit(1);}catch(Exception e){System.out.println("Fehler: Ein unbekannter Fehler ist aufgetreten");System.exit(1);}}
Das wird wohl auch nichts werden, denn du hast da leerzeilen und - drinne.
Daher, Zeilenweise einlesen! Dann mit split(" -"); in ein String[] speichern und diese dann jeweils zu einem double parsen.
Nochmal ein paar Dinge am Rand:
- Wird dein Array überhaupt initialisiert? Sieht man zumindest nicht.
- catch(FileNotFoundException e) dabei solltest du immer e.printStackTrace() im catch block einbauen, dann sieht man auch warum und wo es hapert.
- Wenn etwas nicht läuft, gib doch bitte eine Fehlermeldung mit an. "Es geht nicht" hilft uns auch nicht weiter
Wenn du eine Exception abfängst, gib sie auch aus. Das geht ganz leicht durch ein "e.printStacTrace();". Eine Meldung wie "Fehler: Ein unbekannter Fehler ist aufgetreten" ist zwar gut und schön für ein Endbenutzerprogramm, beim Debuggen und Entwickeln hilft dir das aber herzlich wenig.