Ich lese Daten aus einer Datei, möchte sie (je nach userangabe) sortieren und wieder abspeichern. Der User kann sich entscheiden ob die Datei alphabetisch oder nach dem Wert, ab- oder aufsteigend sortiert werden soll. Die Datei könnte so aussehen:
Will heißen: Zuerst eine Bezeichnung und dahinter ein Wert. Jetzt hab ich gedacht, ich mach das so:
Alphabetisch auf und abwärts zu sortieren funktioniert auch wunderbar, nur wenn man das ganze nach dem Wert sortieren will, funktioniert das ganze nur teilweise (warum und wann es funktioniert und wann nicht, weiß ich auch nicht genau).
Danke für eure Hilfe :wink:
xyz=35.5
zyx=0.4
yxz=1.0E12
...
Will heißen: Zuerst eine Bezeichnung und dahinter ein Wert. Jetzt hab ich gedacht, ich mach das so:
Code:
void sort(boolean abc, boolean down) {
Vector vecTemp = new Vector();
StringBuffer strBuff = new StringBuffer();
String temp = null;
String[] tempAr = null;
try {
buffy = new BufferedReader(new FileReader(file));
while((temp = buffy.readLine()) != null) {
if (abc == true) {
vecTemp.addElement(temp);
}
else {
tempAr = temp.split("=");
vecTemp.addElement(tempAr[1] + "=" + tempAr[0]);
}
}
buffy.close();
Collections.sort(vecTemp);
if (down == true) {
Vector vecTemp2 = new Vector();
for (int i = vecTemp.size() - 1; i >= 0; i--) {
vecTemp2.addElement(vecTemp.elementAt(i));
}
vecTemp = vecTemp2;
}
for (int i = 0; i < vecTemp.size(); i++) {
if (abc == true) {
strBuff.append(vecTemp.elementAt(i).toString() + "\n");
}
else {
tempAr = vecTemp.elementAt(i).toString().split("=");
strBuff.append(tempAr[1] + "=" + tempAr[0] + "\n");
}
}
wuffy = new BufferedWriter(new FileWriter(file));
wuffy.write(strBuff.toString());
wuffy.close();
setGebiet(file);
}
catch (IOException e) {
System.out.println(e);
}
}
Alphabetisch auf und abwärts zu sortieren funktioniert auch wunderbar, nur wenn man das ganze nach dem Wert sortieren will, funktioniert das ganze nur teilweise (warum und wann es funktioniert und wann nicht, weiß ich auch nicht genau).
Danke für eure Hilfe :wink: