DXP GT – Fireplace
DXP GT – Mobile Footer Layer

[JAVA] Matrix in java einlesen

Ken Masters

Lt. Junior Grade
Registriert
Dez. 2006
Beiträge
334
Hallo,

ich habe eine 4 x n (wobei n die anzahl der zeilen ist, 4 ist die anz. der spalten) matrix. alle zellen haben bereits einen wert. was ich damit machen will, ist daraus eine 5 x n matrix zu machen. ich könnte nun alle spalten mit samt allen werten als array in den code kopieren, aber bei tausenden von zeilen wäre es praktischer wenn er es aus einer datei einlesen würde.

die datensätze habe ich als csv datei bzw. als textfile. wie realisiere ich das?

danke für die antworten
 
Hi!

Also das Problem offenbart sich mir nicht ganz. Wie macht man aus 4xn denn 5xn wenn man nicht aus den bestehenden 4 Spalten irgendwas errechnet um damit die 5. (neue Spalte) zu füllen? Was soll in die 5. Spalte? Falls die Matrix nur umverteilt werden soll, muss das n ja kleiner werden.

prinzipiell so wie es der vorposter schon gesagt hat. Einlesen und in ein Array oder in eine sonstige Datenstruktur stopfen.

Flip
 
ok, dann sagen wir mal ich habe eine 5xn matrix wobei die letzte spalte leer ist und nachträglich gefüllt werden soll.

mein programm soll die werte aus einer csv datei einlesen, irgendwas rechnen, die ergebnisse in die letzte spalte füllen und als csv. oder textdatei speichern.

wie speichere ich denn generell wenn ich ne matrix im java-code hab in eine text.datei oder csv.datei?
 
Schon besser :)

Es gibt da natürlich diverse Varianten, alle haben Vor und Nachteile.


File f = new File("/pfad/file.csv");
BufferedReader br = new BufferedReader(f);

String[] tmp = new String[5];
int i=0;

String line = br.readLine(); // erste line
bufferdwriter bw = new bufferdwriter(new filewrite("dateiname"));

while( line != null )
{
StringTokenizer st = new StringTokenizer(","); // elemente auftrennen nach ,
while(st.hasMoreTokens())
{
tmp=st.nextToken();
i++;
}
i=0;
while ( i < 4 )
{
tmp[4]= Berechnung aus den elementen im array;
}

// jetzt irgendwas mit dem array machen und wieder in einen bufferedwriter stecken
//
nur mal fix als psuedocode da ich jetzt nicht auswendig weiss wie es geht ;)

bw.writeLine(tmp);

bw.write(tmp); // Ka ob man ein ganzes string-array writen kann
bw.flush();

line=br.readLine(); // naechste line
} // end while

br.close();

Ca so in der Art sollte es funktionieren. Ist jetzt nicht getestet oder sonst was sondern nur aus dem Kopf :)

flip
 
Zuletzt bearbeitet:
Viel Erfolg!

Vielleicht einfach mal mit den beteiligten Dingen herumspielen und schauen wie sie funktionieren. zB den Inhalt einer Line des BufferedReader ausgeben und verstehen warum man den Tokenizer braucht usw.

Flip
 
Zurück
Oben